У меня есть три связанных объекта, лучше всего описанных этой схемой:
альтернативный текст http://thehashtable.com/wp-content/uploads/2010/01/Enttities.png
Когда я загружаю пользователя, используя следующий код, загружается объект User
, то есть не ноль, но свойства Role
и Department
объекта User
равны нулю, несмотря на то, что запись базы данных пользователя имеет действительные значения FK для этих ассоциаций.
using (var productionEntities = new ProductionEntities())
{
var userName = GetUserName();
User u = (from usr in productionEntities.UserSet
where usr.UserName == userName
select usr).FirstOrDefault();
if (u == null)
{
throw new KpiSecurityException("No local database entry found for user.") { UserName = userName };
}
return u.Department.DeptName;
}
ASIDE: Я прошел всю эту миссию только потому, что ASP.NET MembershipProvider не поддерживает пользовательские «метаданные», такие как отдел, и мне пришлось бы также использовать ProfileProvider, за счет огромного раздувания БД.