利用生成的实体';的类构造函数
本文关键字:构造函数 实体 | 更新日期: 2023-09-27 18:20:22
我使用的是Database First,每次更新模式时,我都会更新EDMX文件,它会为我的模型生成新的类。不幸的是,它没有生成我在数据库中指定的默认列值(例如"TimeStamp"等列的默认值为"getdate()")。
以下是生成的Student.cs
类的外观:
namespace ABC.Data
{
using System;
public partial class Student
{
public Student()
{
}
public int StudentID { get; set; }
public string Name { get; set; }
public Nullable<System.DateTime> TimeStamp { get; set; }
}
}
有没有一种方法可以让构造函数始终将TimeStamp
设置为当前日期?我尝试过在相同的名称空间中创建一个具有相同名称等的helper分部类,但它不起作用。也许我做错了助手类。理想情况下,我希望helper类即使在生成新的模型类之后也保持不变。
DbContext
类有一个名为ObjectMaterialized
的事件,您可以连接到。。。
context.ObjectMaterialized += ObjectContext_OnObjectMaterialized
此事件处理程序可以应用默认值。
private void ObjectContext_OnObjectMaterialized(
object sender, ObjectMaterializedEventArgs e)
{
if (e.Entity is Student)
(e.Entity as Student).TimeStamp = <default value>;
}
当您需要Student
的新实例而不是新建实例时,您需要记住使用context.Set<Student>().Create()
。