Sim*_*ann 5 c# sql entity-framework visual-studio
我在Visual Studio中使用实体框架wizzard创建了一个db-model.有两个表(job,stocktype)与表stocktype2job相互关联.

Job <------- no direct relation / navigation property --------> StockType
| |
| |
---------------------> StockType2Job ----------------------------->
Run Code Online (Sandbox Code Playgroud)
有了Job Object,我可以做这样的事......
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);
}
Run Code Online (Sandbox Code Playgroud)
这应该工作得很好.但是有没有办法在作业实体中创建一个导航属性,所以我可以写这样的东西?
EntitiesObject db = new EntitiesObject();
Job job = db.Jobs.SingleOrDefault(j => j.IdJob == 40);
List<StockType> stockTypes = job.StockTypes; // <<-----
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助Apo
很明显(从自我参考)它StockType2Jobs不仅包含 StockType 和 Job 的外键,因此您无法使用导航属性映射多对多关系job.StockTypes。StockType所以除了通过收集之外你不能做任何其他事情job.StockType2Jobs。但这没什么大不了的:
List<StockType> stockTypes = job.StockType2Jobs.Select(x => x.StockType);
Run Code Online (Sandbox Code Playgroud)
您可能会想将其包装在未映射的属性中job.StockTypes,但通常这样做不是一个好主意。
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |