【发布时间】:2014-11-24 02:33:26
【问题描述】:
有没有办法编写一个基本实体,其中主键的类型不使用泛型指定?
例如,到目前为止,我一直在这样做:
public class BaseUniqueEntity<T> where T : IComparable, IComparable<T> {
[Key]
public T Key{ get; set; }
}
这在当时很好,但现在给我带来了设计问题。例如,在编写通用存储库时,我必须指定两种类型约束:
public interface IRepository<K, E>
where K : IComparable, IComparable<K>
where E : BaseUniqueEntity<K>
我只想指定实体的类型E,但我需要K 类型来指定where E : BaseUniqueEntity<K> 约束。
我无法创建 Key 类型的对象,因为在为我创建表时它会搞砸。
所以我想从BaseUniqueEntity 中删除泛型。有没有办法做到这一点?我没有想法,而且我对 Entity Framework 还是很陌生。
【问题讨论】:
-
你可以 - 让它成为完全定义的东西:
int、Guid、string,等等。但是你所有的实体都必须有这样的主键类型。 -
我真的很希望孩子们可以决定他们的密钥是什么类型
标签: c# .net entity-framework generics