如何使用codefirst EF4创建非持久属性?
MS说有一个StoreIgnore属性,但我找不到它.
有没有办法使用EntityConfiguration设置它?
在关于C#模式验证的最佳实践的问题中,最高投票的答案是:
我倾向于在构造函数中执行所有验证.这是必须的,因为我几乎总是创建不可变对象.
你究如何在C#中创建一个不可变对象?你刚才用readonly关键字吗?
如果要在Entity Framework生成的模型类的构造函数中进行验证,这究竟是如何工作的?
它看起来像下面?
public partial readonly Person
{
public Person()
}
Run Code Online (Sandbox Code Playgroud) 我首先使用EF Code和数据库第一种方法."使用Database.SetInitializer(null);"
我的表有两列createddate和amendddate.它们由SQL Server使用触发器管理.我们的想法是,当数据输入发生时,这些列通过触发器获取数据.
现在我想做的是从EF Code的第一个角度来看这个只读.即我希望能够从我的应用程序中看到创建日期和已记录的日期,但我不想修改这些数据.
我尝试在setter上使用私有修饰符,但没有运气.当我尝试向表中添加新数据时,它试图将DateTime.Max日期输入到数据库,该数据库从SQL服务器抛出错误.
任何的想法?
我想在模型上使用延迟加载集合,但我希望通过单独的方法完成添加/删除功能.所以像这样:
class Model
{
protected virtual ICollection<Something> _somethings { get; set; }
public IEnumerable<Something> Somethings
{
get { return _somethings; }
}
public void AddSomething(Something thingToAdd)
{
/* logic */
_somethings.Add(thingToAdd);
}
}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何为此配置映射.我研究了使用配置类:EntityConfiguration.但由于该属性受到保护,我无法弄清楚如何在其上设置配置.有没有办法完成我在这里要做的事情?