【发布时间】:2015-01-05 19:31:22
【问题描述】:
所以我正在编写一个“半通用”类,它一遍又一遍地与签名匹配相同的模式
public class BaseSupportRepo<TEntity, TDto> where TEntity : class where TDto : class
所有使用这个类的repos都有一个属性Name
我想做的是编写一个函数,如果名称与某些输入匹配(但名称不是主键),它将返回 .Single() 。
现在,如果这是一个非通用函数,那就很容易了,因为
.Single(g => g.Name == name)
但是,因为这是一个通用函数,所以不能使用 .Name 属性,因为 TEntity 可能没有任何属性 Name。
EF 中是否有任何函数可以允许类似于:-
.Single(string key, string value)
这可以让我绕过这个要求。
【问题讨论】:
-
为什么不直接创建一个 INamedEntity { string Name } 和 where TEntity : INamedEntity 并让你的所有实体都实现 TEntity
-
你能用Anonymous Types吗?
标签: c# entity-framework generics lambda