【发布时间】:2016-09-25 06:47:10
【问题描述】:
我在 EF 中为 CRUD 写了一个通用存储库。在 add 方法中是这样写的
public class GenericRepo<T> where T : class
{
//Create
public static void Add(CellPhoneProjectEntities dbContext, T entity)
{
dbContext.Set<T>().Add(entity);
dbContext.SaveChanges();
}
}
我想获得实体的第一个元素(主键,身份列),效果很好
public static long Add(CellPhoneProjectEntities dbContext, T entity,long id)
{
dbContext.Set<T>().Add(entity);
dbContext.SaveChanges();
var pk = entity.ElementType.KeyMembers[0];
//Something like first elemnt by generic
return pk as Long;
}
任何人都可以在插入后帮助获取实体的第一个元素(Id)吗?
编辑:EF 数据库优先,我的主键未命名为 Id..
而是 TableNameId 例如。表 ProjectMaster 具有主键 ProjectMasterId
【问题讨论】:
-
答案基于 EF 4.1 但我的 EF 在 6.1.3
-
通用存储库,是模式滥用。
标签: c# entity-framework generics entity-framework-6