C# 使用实体框架6创建计算字段
考虑EF 6实体的以下模型: Id(int,可空:false,标识:true) 名称(字符串) 数字(字符串) 我想将数字作为字母和id字段的组合保存。例如,如果在插入期间id值将为1,则我希望数字为A00000001。我试着在数字上使用DatabaseGenerated属性,但不起作用。问题是在插入时EF将不知道标识值是什么。有没有办法定义一个触发器来实现这一点,或者有没有其他方法可以实现这一点C# 使用实体框架6创建计算字段,c#,entity-framework,entity-framework-6,C#,Entity Framework,Entity Framework 6,考虑EF 6实体的以下模型: Id(int,可空:false,标识:true) 名称(字符串) 数字(字符串) 我想将数字作为字母和id字段的组合保存。例如,如果在插入期间id值将为1,则我希望数字为A00000001。我试着在数字上使用DatabaseGenerated属性,但不起作用。问题是在插入时EF将不知道标识值是什么。有没有办法定义一个触发器来实现这一点,或者有没有其他方法可以实现这一点 谢谢 尝试先将项目插入数据库: Item myItem = new Item(){Name =
谢谢 尝试先将项目插入数据库:
Item myItem = new Item(){Name = "MyName"};
dbcontext.Items.Add(myItem);
dbcontext.SaveChages();
然后从数据库中取出项目并更新它:
Item insertedItem = dbcontext.Items.Single(i => i.Id == myItem.Id);
insertedItem.Number = insertedItem.Name + insertedItem.Id.toString();
dbcontext.SaveChages();
如果您不需要将计算字段保存到数据库中,并且正在对实体使用POCO,您可以定义一个未映射字段,如下所示:
[NotMapped]
public string Number
{
get { return Name + Id.ToString(); }
}
试着先插入然后更新我真的希望我不必这样做。但事实就是这样。谢谢