如何访问Id
的{{1}}属性?我有以下代码:
instance
我现在想把它变成通用的:
public void InsertOrUpdate(Book book)
{
if (book.Id == default(int)) {
我搜索了类似的帖子,我想我应该写一些像public class TheRepository<T> : IRepository<T> where T : class
{
public void InsertOrUpdate(T instance)
{
if (instance.Id == default(int))//How can I access Id here
{
context.Set<T>().Add(instance);
但我不知道究竟是怎么回事?
答案 0 :(得分:2)
你可以像这样做一个黑客。使用名为int
的{{1}}类型的一个属性定义一个接口:
Id
然后声明您的实体实现了接口:
interface IHaveId
{
public int Id { get; set; }
}
最后声明通用Repository类中使用的类型应该实现此接口。
public class Book : IHaveId
这样做可以避免使用反射,这在一般情况下非常昂贵。此外,您的代码现在更加清晰。