如何检查实体是否处于多对多关系中

时间:2009-12-23 20:37:09

标签: asp.net-mvc vb.net entity-framework many-to-many

我有一个'用户'表,一个'电话号码'表和一个'用户到电话号码映射'表。电话号码表仅存储唯一的电话号码。通过这种方式,我可以查看电话号码,看看谁在轻松使用它。编辑用户时,还可以轻松检查电话号码是否存在。

问题是我应该如何检查是否应该将电话号码添加到地图中。我可以循环加载的映射用户并检查每个id。必须有一个方法,我可以用来检查像EdmUser.phone_number_map.contains(PhoneNumber)。但是我找不到这样的东西。

1 个答案:

答案 0 :(得分:0)

假设实体有一个名为PhoneNumber的属性,其中包含数字的字符串......

var pnm = EdmUser.phone_number_map; // to save typing later on...
if !(pnm.IsLoaded) pnm.Load();
var existing = pnm.Where(pn => pn.PhoneNumber.Equals(PhoneNumber, StringComparison.WhateverYouNeed)).FirstOrDefault();
if (existing == null)
{
    pnm.Add(new PhoneNumberEntity { PhoneNumber = PhoneNumber } );
}
else
{
    // do stuff with "existing", if need be.
}
Context.SaveChanges();

如果我猜错你的元数据,请相应调整。