我正在使用Entity Framework 5代码优先,我已经覆盖了SaveChanges
方法。在SaveChanges
中,我想识别具有EntityState == EntityState.Added
的任何实体(我可以很容易地做到这一点)但是我想要识别那些被定义为主键的实体中的任何列, HasDatabaseGeneratedOption
属性设置为DatabaseGeneratedOption.None
,目前的值为Null
。
我需要识别这些列,因为我的数据库当前有一些列被定义为主键,需要通过代码手动填充。我想我可以在SaveChanges
的插页上处理这一列的列,但是我很难理解如何识别它们。
如何查询SaveChanges
中的列定义?我显然知道如何检查数据值
答案 0 :(得分:1)
您需要查看数据模型,获取包含主键的属性,并查看它是否具有您想要的属性。请在此处查看示例:http://weblogs.asp.net/ricardoperes/entity-framework-metadata。 但是,如果您不使用属性,而是在OnModelCreating中自定义模型,则此方法无效。