gpt4 book ai didi

c# - 具有基本实体类的 Entity Framework

转载 作者:行者123 更新时间:2023-11-30 20:05:42 25 4
gpt4 key购买 nike

我们的团队正致力于在广泛的现有数据库架构上实现代码优先的 EF 框架。我们真正想要的一件事是我们所有不同的实体都将实现的基本接口(interface)。我们打算在此基本界面中定义的所有内容是一个 Id 字段和一个 Name 字段,因为我们所有的数据库表都对这两个属性有一些概念。这种方法有很多好处,因为在我们的应用程序中有很多情况,您只需要对象的 Id 和一些描述性文本(它的“名称”),这样就可以针对接口(interface)进行编程,而不是该实现可以提供相当大的灵 active 。

问题的出现是因为并非我们模式中的所有表都具有基于整数的 PK,有些表具有字符串、guid 等。因此除了对象之外,我们无法为接口(interface)中的 Id 字段定义真正的“类型”可以容纳所有的可能性。然后问题变成了 EF 不喜欢将对象作为其 PK 的想法,因此它在尝试指定 HasKey(o => o.Id) 时提示。

无论如何,你们是否可以想到来完成我们在这里努力实现的目标?谢谢!

最佳答案

使用泛型。

public interface IEntityBase<TKey>
{
TKey Id { get; set; }
string Name { get; set; }
}

那么你可以这样实现

public class IntKeyEntity : IEntityBase<int>
{
int Id { get; set; }
string Name { get; set; }
}

public class StringKeyEntity : IEntityBase<string>
{
string Id { get; set; }
string Name { get; set; }
}

//etc

关于c# - 具有基本实体类的 Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10916319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com