2016-04-22 131 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);