Могу ли я использовать интерфейс с иностранным ключом в EF 6 и установить его в качестве иностранного ключаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Могу ли я использовать интерфейс с иностранным ключом в EF 6 и установить его в качестве иностранного ключа

Сообщение Anonymous »

Я использую EF 6 с .NET 4.8.
Классы всех объектов данных определены в проекте Model , чтобы его можно было использовать клиентскими приложениями. Только пользователь (

Код: Выделить всё

ApplicationUser
) модель определяется в приложении Project (я использую идентификацию ASP.NET, и она наследует от IdentityUser ).
У меня мало Классы организации, которые включают поле CreateByuserid и хотели бы иметь собственность навигационного иностранного ключа. Проблема заключается в том, что я не могу использовать класс ApplicationUser в определении объекта, так как он не известен в модели Project.
Я создал интерфейс iappuser с соответствующими полями и добавленным также в качестве приложения базовый класс. Создано: < /p>

system.invalidoperationException: «Свойство» CreateByuser 'не может быть настроено в качестве навигационного свойства. Свойство должно быть действительным типом объекта, а свойство должно иметь неапстрортный Getter и Setter. Для свойств сбора тип должен реализовать iCollection , где t является допустимым типом объекта. '< /P>
< /blockquote>
код: < /p>

Код: Выделить всё

public class EntityA
{
[Key]
public int EntityId { get; set; }          // Primary key, Identity
public DateTime? CreateDate { get; set; }  // Nullable DateTime

[StringLength(128)]
[ForeignKey("CreateByUser")]
public string CreateByUserId { get; set; }  // Nullable nvarchar(128)

public virtual IAppUser CreateByUser { get; set; }

...
}

public class ApplicationUser : IdentityUser, IAppUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int? CustomerId { get; set; }
}
Я также пытался улучшить onmodelcreating

Код: Выделить всё

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);

// AspNetUsers -> User
modelBuilder.Entity()
.ToTable("User");
//.HasMany(p => p.Roles)
//.WithRequired()
//.HasForeignKey(f => f.UserId);

// AspNetRoles -> Role
modelBuilder.Entity()
.ToTable("Role");

// AspNetUserRoles -> UserRole
modelBuilder.Entity()
.ToTable("UserRole");

// AspNetUserClaims -> UserClaim
modelBuilder.Entity()
.ToTable("UserClaim");

// AspNetUserLogins -> UserLogin
modelBuilder.Entity()
.ToTable("UserLogin");

// Configure the relationship between Grant and ApplicationUser
modelBuilder.Entity()
.HasOptional(g => (AppUser)g.CreateByUser)
.WithMany()          // No inverse navigation property on ApplicationUser
.HasForeignKey(g => g.CreateByUserId) // Foreign key: CreateByUserId
.WillCascadeOnDelete(false);
}
}
< /code>
Кто -нибудь делал что -то подобное раньше? Есть идеи, как заставить это работать? Также считается вручную реализовать свойство CreateByuser 
, но не смог найти какого -либо элегантного способа сделать это.

Подробнее здесь: https://stackoverflow.com/questions/794 ... oreign-key
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Я хочу использовать модель иностранного ключа в качестве форм в формах django
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Я хочу использовать модель иностранного ключа в качестве форм в формах django
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • .Net Framework & Entity Framework: не сохранение вложенной коллекции организации, связанной с иностранным ключом
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Организация основных отношений с иностранным ключом
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Организация основных отношений с иностранным ключом
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»