Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ对实体的一些误解_C#_Linq_Entity Framework - Fatal编程技术网

C# LINQ对实体的一些误解

C# LINQ对实体的一些误解,c#,linq,entity-framework,C#,Linq,Entity Framework,我有这个linq to实体行: myentity.CityType.Add(context.Set<SiteCityType>().FindAsync(2)); myentity.CityType.Add(context.Set().FindAsync(2)); 其中实体为myentity和SiteCityType是定义的实体。 而CityType是在myentity实体中定义的导航属性: public virtual ICollection<SiteCityTyp

我有这个linq to实体行:

myentity.CityType.Add(context.Set<SiteCityType>().FindAsync(2));
myentity.CityType.Add(context.Set().FindAsync(2));
其中实体为myentitySiteCityType是定义的实体。 而CityType是在myentity实体中定义的导航属性:

    public virtual ICollection<SiteCityType> CityType { get; set; }
公共虚拟ICollection城市类型{get;set;}
上面的linq行工作正常,但我需要FindAsync方法获取列表:

myentity.CityType.Add(context.Set<SiteCityType>().FindAsync('some list of ints'));
myentity.CityType.Add(context.Set().FindAsync('somelist of int'));

知道如何实现它吗?

尝试创建扩展方法:

    public static IEnumerable<SiteCityType> FindById(this SiteCityTypeRepository repository, int[] ids)
    {
        var result = from pr in repository.All() 
                     where ids.Contains(pr.ID)
                     select pr;
        return result.ToList();
    }
public static IEnumerable FindById(此SiteCityTypeRepository存储库,int[]id)
{
var result=来自repository.All()中的pr
其中ID.Contains(pr.ID)
选择公关;
返回result.ToList();
}
我建议“All()”方法返回非内存对象,例如IQueryable。
因此,实际的实现取决于您的体系结构。

我建议您实现自定义方法(创建存储库并添加您喜欢的方法)。您可以使用Where(siteCityType=>list.Contains(siteCityType.Id))而不是FindAsync@stefchri. add extenntion只获取单个项而不获取集合,因此要使您的示例正常工作存在一个问题为什么我们要实现一些已经存在的东西?(
包含
)。