Я использую Entity Framework 4.2 в проекте библиотеки классов.База данных уже существует, и я никак не могу ее изменить.
У меня есть два класса модели / домена, которые моделируют две таблицы базы данных.Обе таблицы представляют значение столбца Id, которое я буду называть ThingsId.Позволяет назвать таблицы TableOfThings1
и TableOfThings2
.Вот мои уроки:
public class TableOfThings1
{
public string ThingId { get; set; }
public virtual Thing Thing { get; set; }
}
public class TableOfThings2 //qse
{
public Int64? ThingId {get; set;}
public string ThingName { get; set; }
}
Проблема в том, что TableOfThings1
выставляет ThingsId как обнуляемый varchar (64), тогда как TableOfThings2
выставляет ThingsId как ненулевой bigint.
Как я могу сказать Entity Framework присоединиться к этим двум ключам?Я попытался использовать это:
HasOptional(things1 => things1.thing).WithMany().HasForeignKey(t => t.ThingId);
в EntityTypeConfiguration
для TableOfThings1
.
Я также попытался привести в середине этого утверждения, что не работает.Использование настройки, показанной выше, возвращает мне это сообщение об ошибке:
«Типы всех свойств в зависимой роли ссылочного ограничения должны быть такими же, как и соответствующие типы свойств в главной роли».
Кто-нибудь точно знает, возможно ли / как это возможно?