【发布时间】:2023-04-06 20:16:01
【问题描述】:
我正在尝试为我的实体中的每个外键生成一个方法,以根据该外键返回记录列表。我知道一种确定主键的方法:
foreach (var edmProperty in simpleProperties)
{
bool isPrimaryKey = ef.IsKey(edmProperty);
if(isPrimaryKey)
{
//do stuff
}
}
有没有办法找到外键? 我将 EF 6 与 Visual Studio 2013 一起使用。 谢谢
【问题讨论】:
-
"返回记录列表" ...这就是集合导航属性的用途。我不确定你想要达到什么目的。
-
假设我有一个产品。我的产品有一个 categoryID 作为外键。我想用我的 T4 模板生成一个方法来返回具有给定 categoryID 的所有产品。当我在我的实体的 T4 模板中循环浏览所有属性时,如何判断哪个属性是外键,以便创建此方法。我可以弄清楚哪个是主键而不是外键。
-
为什么是方法?在哪个班?
Category将有一个导航属性Products。 -
我想在生成的代码中添加一个方法,这样我的代码隐藏中就没有我的上下文了。这将适用于我的模型中从实体框架(数据库优先模型)生成的所有类。我想我可以从 Category 类中获取它,但是如果我想要返回产品,我将不得不创建一个自定义方法,如 ctx.Categories.Include("Products").ToList() 。或者在我的代码隐藏中包含上下文,以便在我访问类别时自动加载产品。
-
你为什么不展示一个例子来说明这种方法应该是什么样子?我仍然不清楚,主要是因为你从来不知道这些方法应该属于哪里以及它们应该如何操作。
标签: visual-studio-2013 entity-framework-6 t4 asp.net-4.0