Entity framework 不带外键的Dotnet实体框架Include

Entity framework 不带外键的Dotnet实体框架Include,entity-framework,.net-core,entities,Entity Framework,.net Core,Entities,我有两种型号: 位置 身份证 设施音 名字 设施 身份证 设施音 名字 位置的FacilityMononic可以为空。该位置可能有一个没有设施的设施助记符。我需要一种方法来构造这些实体,这样我就可以进行某种形式的 _context.Locations.Where(CONDITIONS HERE).Include("Facility").ToList(); 然后能够为我的web API打包一个漂亮的json响应。但是,我不能使用外键,因为如果存在没有匹配功能的助记符,约束将失败。无法确定

我有两种型号:

位置

  • 身份证
  • 设施音
  • 名字
设施

  • 身份证
  • 设施音
  • 名字
位置的FacilityMononic可以为空。该位置可能有一个没有设施的设施助记符。我需要一种方法来构造这些实体,这样我就可以进行某种形式的

_context.Locations.Where(CONDITIONS HERE).Include("Facility").ToList();

然后能够为我的web API打包一个漂亮的json响应。但是,我不能使用外键,因为如果存在没有匹配功能的助记符,约束将失败。无法确定使用实体框架执行此操作的正确方法。非常感谢您的指导。

您不能在SQL server中使用没有关系的包含

你可以用这个来代替

var list = (from a in _context.Location.Where(CONDITIONS HERE) 
            from b in _context.Facility.Where(CONDITIONS HERE related to Location).DefaultOrEmpty()
            select new Location() {
                Id = a.Id,
                Name = a.Name,
                Facilities = b
            }).ToList();

如果没有主键,使用EF不是一个好方法,即使我们不能在没有主键的情况下在表中添加任何数据。这不会返回设施嵌套的位置,但会吗?“facilities=b”是位置的嵌套设施。