C# 如果表之间存在多对多关系,如何在实体框架中求交?
我有这个模型(模型更多,但现在不重要) 我有一些注释,我想了解所有用户如何使用这些注释,但我得到了一个例外(“无法创建'DataBase.Annotation'类型的常量值”)。 此上下文中仅支持基元类型或枚举类型。“),当使用下一个代码时C# 如果表之间存在多对多关系,如何在实体框架中求交?,c#,entity-framework,linq,entity-framework-6,many-to-many,C#,Entity Framework,Linq,Entity Framework 6,Many To Many,我有这个模型(模型更多,但现在不重要) 我有一些注释,我想了解所有用户如何使用这些注释,但我得到了一个例外(“无法创建'DataBase.Annotation'类型的常量值”)。 此上下文中仅支持基元类型或枚举类型。“),当使用下一个代码时 TextCorporaEntities TextCorporaContext = new TextCorporaEntities(); List<DataBase.Annotation> annotations = //annotations
TextCorporaEntities TextCorporaContext = new TextCorporaEntities();
List<DataBase.Annotation> annotations = //annotations which I used
//I get the exception here
var UserAnnotationsResult = TextCorporaContext.Annotation_User.
Where(x => annotations.
Contains(x.Annotation));
TextCorporateEntities textCorporateContext=new textCorporateEntities();
列表注释=//我使用的注释
//我这里有个例外
var UserAnnotationsResult=textcorporationcontext.Annotation\u用户。
其中(x=>注释。
包含(x.Annotation));
我可以使用这段代码,但它没有效率
List<Annotation_User> listResult = new List<Annotation_User>();
foreach (var x in annotations)
{
listResult.Concat(TextCorporaContext.Annotation_User.Where(y=>y.AnnotationId == x.Id));
}
List listResult=new List();
foreach(注释中的var x)
{
Concat(textcorporationcontext.Annotation_User.Where(y=>y.AnnotationId==x.Id));
}
如何获取使用了某些注释的所有用户?
如何获取使用AccessType等于ReadOrWrite(在模型中它保存为字符串)的某些注释的所有用户?您只能将Contains与原语一起使用 我认为这应该行得通
var annotationsIds = annotations.Select(a => a.AnnotationId)
var UserAnnotationsResult = TextCorporaContext.Annotation_User.
Where(x => annotationsIds.
Contains(x.Annotation.AnnotationId));
只能对基本体使用“包含” 我认为这应该行得通
var annotationsIds = annotations.Select(a => a.AnnotationId)
var UserAnnotationsResult = TextCorporaContext.Annotation_User.
Where(x => annotationsIds.
Contains(x.Annotation.AnnotationId));