虚拟呼叫我有一个实体宣称与此类似:流利NHibrnate - 在构造 - 最佳实践
public class Comment
{
public Comment(string text, DateTime creationDate, string authorEmail)
{
Text = text;
CreationDate = creationDate;
AuthorEmail = authorEmail;
}
public virtual string Text { get; private set; }
public virtual DateTime CreationDate { get; set; }
public virtual string AuthorEmail { get; private set; }
}
我从Is it OK to call virtual properties from the constructor of a NHibernate entity?
采取它我得到警告为“在构造虚拟呼叫”。
虽然它不会造成任何实际问题,因为虚拟成员只是为NH代理而声明的。但是,如果我应该移动的构造方法到一个新的工厂类用新的方法,我在想,被宣布为
CreateComment(string text, DateTime creationDate, string authorEmail)
什么会在这种情况下,最好的做法是什么?
请注意,目前我的域实体中有4-5个重载构造函数。以上只是一个例子。
谢谢!
怎么样,我需要从外面传值的方法:(字符串文本,日期creationDate,串AUTHOREMAIL) – iniki 2011-03-15 16:05:48
@iniki:Huh?I不明白你的意思,因为你可以简单地说'var comment = new Comment {Text = GetText(),CreationDate = GetCreationDate(),AuthorEmail = GetAuthorEmail()};' – jason 2011-03-15 16:32:02
Jason对不起,但我想我是在这里忽略了你的观点:-(实际上,我现在所需的重载构造函数需要将对象成员设置为从客户端应用程序接收的值。不知道我怎么能在无参数的构造函数中做到这一点。你能否详细说明你的答案? – iniki 2011-03-16 12:20:40