我正在尝试为我的实体中的每个外键生成一个方法,以返回基于该外键的记录列表。我知道一种确定主键的方法:
foreach (var edmProperty in simpleProperties)
{
bool isPrimaryKey = ef.IsKey(edmProperty);
if(isPrimaryKey)
{
//do stuff
}
}
有找到外键的方法吗? 我在Visual Studio 2013中使用EF 6。 感谢
答案 0 :(得分:1)
不要这样做。出于多种原因:
GetByCountryID
这样的方法通常是存储库方法,它们不属于实体类。City.New()
方法可能是有意义的。City
有GetByCountryID
方法?甚至可能有更多类具有相同的方法。City
实例无关,但其位置似乎意味着这样的关联。Country
(例如因为它从未使用过),该方法也会消失。Categories
和他们的Products
,您必须以EF知道如何关联它们的方式加载它们。您可以通过Include
执行此操作,也可以将其包含在投影中,或通过延迟加载,或稍后提取Products
,但在同一上下文中提取所有 。您提出的方法只能生成分离的实体,也会断开连接(即不附加到上下文)。还有其他模式可以隐藏其他应用程序层的数据层详细信息,例如具有依赖项注入的存储库。
答案 1 :(得分:0)
以下是我获取外键属性名称的方法。
SELECT REGEXP_SUBSTR('STRING_EXAMPLE','[^PLE]+',1,1) from dual;