Ef .net6 миграция "должна быть неинтерфейсным эталонным типом, который будет использоваться в качестве типа объекта".C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Ef .net6 миграция "должна быть неинтерфейсным эталонным типом, который будет использоваться в качестве типа объекта".

Сообщение Anonymous »

Итак, я пытаюсь сделать мигрировать для моего кода,
Я использую C# и .net 6 с чистой архитектурой,
У меня есть это в решении «Core»: < /p>

В папке объектов < /p>
< /blockquote>
< /p>
< /blockquote>

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

public class Partenaire : AuditableBaseEntity
{
public string Nom { get; set; }
public string? Telephone { get; set; }
public string? Email { get; set; }
public string? Address { get; set; }
public string? ImmatriculeFiscale { get; set; }
public string? NumeroRegistreCommerce { get; set; }

public IEnumerable PartenaireContacts { get; set; }
public IEnumerable
 PartenaireActivite { get; set; }

public virtual ICollection PartenaireDetailsBancaires { get; set; }

}
В Entites/Base Folder

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

public interface IPartenaireContact : IAuditableEntity, ISoftDelete
{
public Guid PartenaireId { get; set; }
public Partenaire Partenaire { get; set; }
}
< /code>
Таким образом, мой Partenaire может иметь один или много PartenaireContact, PartenaiRecontact фактически наследует от идентификатора, потому что PartenaiReContact - это пользователь, который может войти в приложение < /p>
и в «Инфраструктуре»: < /p>
                и в «Инфраструктуре».  Папка < /p>
< /blockquote>
public class PartenaireContact : IdentityUser, IPartenaireContact
{
public Guid PartenaireId { get; set; }
public Partenaire Partenaire { get; set; }

public string Nom { get; set; }
public string Prenom { get; set; }
public string Identifiant { get; set; }
public string? FullName { get; set; }
public string? Fonction { get; set; }
public string? Tel { get; set; }
public string? Note { get; set; }
public string? ImageUrl { get; set; }
public bool IsActive { get; set; }
public string? RefreshToken { get; set; }
public DateTime RefreshTokenExpiryTime { get; set; }
public Guid CreatedBy { get; set; }
public DateTime Created { get; set; }
public Guid LastModifiedBy { get; set; }
public DateTime? LastModified { get; set; }
public DateTime? DeletedOn { get; set; }
public Guid? DeletedBy { get; set; }
}
< /code>

в папке данных < /p>
< /blockquote>
public class ApplicationDbContext : IdentityDbContext
{
private readonly IDateTimeService _dateTime;
private readonly ILoggerFactory _loggerFactory;
private readonly ICurrentUser _currentUser;
private readonly ISerializerService _serializer;
public ApplicationDbContext(DbContextOptions options,
IDateTimeService dateTime,
ILoggerFactory loggerFactory,
ICurrentUser currentUser,
ISerializerService serializer) : base(options)
{
ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
_dateTime = dateTime;
_loggerFactory = loggerFactory;
_currentUser = currentUser;
_serializer = serializer;
}

public DbSet Partenaires { get; set; }
public DbSet Devises { get; set; }
public DbSet Activites { get; set; }
public DbSet PartenaireActivites { get; set; }
public DbSet PartenaireDetailsBancaires { get; set; }
public DbSet AuditTrails => Set();

public override async Task SaveChangesAsync(CancellationToken cancellationToken = new CancellationToken())
{
var auditEntries = HandleAuditingBeforeSaveChanges();

int result = await base.SaveChangesAsync(cancellationToken);

await HandleAuditingAfterSaveChangesAsync(auditEntries, cancellationToken);

return result;
}

protected override void OnModelCreating(ModelBuilder builder)
{
builder.AppendGlobalQueryFilter(s => s.DeletedOn == null);

builder.Entity().HasKey(pa => new { pa.Partenaire, pa.ActiviteId });

builder.Entity()
.HasOne(pdb => pdb.Partenaire)
.WithMany(p => p.PartenaireDetailsBancaires)
.HasForeignKey(pdb => pdb.PartenaireId);

builder.Entity()
.HasOne(pdb => pdb.Devise)
.WithMany(d => d.PartenaireDetailsBancaires)
.HasForeignKey(pdb => pdb.DeviseId);

builder.Entity()
.HasOne(pdb => pdb.Partenaire)
.WithMany(p => p.PartenaireContacts)
.HasForeignKey(pdb => pdb.PartenaireId);

base.OnModelCreating(builder);
builder.ApplyConfigurationsFromAssembly(GetType().Assembly);
}
}
< /code>
Итак, когда я пытаюсь мигрировать, я имею эту ошибку: < /p>

Указанный тип
'аппликационно-кар />  Я знаю, что я должен сделать ipartenairecontact 
в классе в моем отношении, но я не люблю добавлять EntityFramework в мое решение «основное».
Так что любая помощь, пожалуйста?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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