如何在Linq中使用List <string>作为实体?

时间:2016-12-23 06:46:32

标签: c# asp.net-mvc entity-framework linq linq-to-entities

我有List类型String,其中的值与我的实体类中的属性具有相同的名称,

例如, 我有List<string>

List<String> list = new List<String>(new String[]{ "Name", "Age", "Value" });

现在我必须使用LinqtoEntities使用列表中的值来查询我的表格 像这样:

db.Mytable.Where(z=>z.MyListValue1==SomeValue && z.MylistValue2==SomeValue &&
                    z.MyListValue3==SomeValue) 

这可能吗?或者还有其他解决方法吗? 因为我的List<string>值与我的类属性相同

我正在使用数据库FIRST方法与EF5,Mvc5和Oracle11g

2 个答案:

答案 0 :(得分:2)

您可以使用Contains

db.Mytable.Where(z => list.Contains(z.YourPoperty))

答案 1 :(得分:0)

该列表包含您要比较的属性名称?从来没有这样做过,所以没有例子,但我会这样做:

动态linq是实现它的一种方式https://dynamiclinq.codeplex.com/

另一个是自己做一些反思

最后一个是尝试使用db.Entry(),然后使用Property()方法https://msdn.microsoft.com/en-us/library/system.data.entity.infrastructure.dbentityentry.property(v=vs.113).aspx#M:System.Data.Entity.Infrastructure.DbEntityEntry.Property(System.String)