2016-04-22 97 views
1

是否有方法或解决方法来查找基于组合键的实体?当使用实体框架7(核心)。实体框架7(核心)基于组合键查找实体?

modelBuilder.Entity<Car>() 
       .HasKey(c => new { c.State, c.LicensePlate }); 

特别要避免使用多对多中间表的UNIQUE约束异常。

+1

我通常使用上下文与实体DBSets。然后,我可以执行如下操作:_context.Cars.Where(c => c.State!= null && c.LicensePlate!= null).ToList();如果这些属性是对象。或者你检查什么值将是“空”。 != 0.这能帮助你吗? –

+0

是的,简单的方法,它的工作原理。主要是我需要检查数据库中是否存在具有某个组合键的实体。我使用了这种类型的调用:'database.Cars.Any( c => c.StateId == stateId && c.LicensePlateId == LicensePlateId)' – ajr

+0

我把它作为答案,所以这可以关闭?或者你还需要一些帮助? –

回答

1

通常我会使用具有DBSets实体的Context。然后,我可以执行如下操作:

_context.Cars.Where(c => c.State != null && c.LicensePlate != null).ToList(); 

或者您检查任何值是否为“null”。 != 0

2

您可以使用后也释放1.1查找方法:

var entity = _context.Cars.Find(firstKey, secondKey);