gpt4 book ai didi

c# - Entity Framework - 创建导航属性

转载 作者:太空狗 更新时间:2023-10-29 23:32:50 26 4
gpt4 key购买 nike

我在 Visual Studio 中使用 Entity Framework 向导创建了一个数据库模型。有 2 个表(job,stocktype),它们与表 stocktype2job 相互关联。

enter image description here

Job <------- no direct relation / navigation property --------> StockType
| |
| |
---------------------> StockType2Job ----------------------------->

有了工作对象,我可以做这样的事情......

EntitiesObject db = new EntitiesObject();
Job job = db.Jobs.SingleOrDefault(j => j.IdJob == 40);

List<StockType> stockTypes = new List<StockType>;
foreach (StockType2Job st2j in job.StockType2Jobs)
{
stockTypes.add(st2j.StockType);
}

那应该工作得很好。但是有没有办法在作业实体中创建一个导航属性,这样我就可以写这样的东西了?

EntitiesObject db = new EntitiesObject();
Job job = db.Jobs.SingleOrDefault(j => j.IdJob == 40);

List<StockType> stockTypes = job.StockTypes; // <<-----

感谢您的帮助载脂蛋白

最佳答案

很明显(从 self 引用中)StockType2Jobs 不仅包含 StockType 和 Job 的外键,因此您不能将多对多关系映射到导航属性 工作.StockTypes。因此,除了通过 job.StockType2Jobs 收集 StockType 之外,您无法执行任何其他操作。但这没什么大不了的:

List<StockType> stockTypes = job.StockType2Jobs.Select(x => x.StockType);

您可能想将其包装在未映射的属性 job.StockTypes 中,但通常这样做并不是一个好主意。

关于c# - Entity Framework - 创建导航属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13876498/

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