Asp net core 3.1.1 generi c общие свойства репозитория - PullRequest
0 голосов
/ 16 марта 2020

Я студент, делающий ASP NET Core 3.1.1 WebAPI поверх NorthwindDB. Свойства идентификаторов таблиц имеют уникальные имена. Есть ли способ применить шаблон хранилища generic c в таком случае, чтобы он не стал слишком сложным?

public interface IEntity
{
   int id {get; set;}     //won't work, Id: s have unique names like 'int ProductId'
}

public interface IEntity
{
   int ProductId {get; set;}  //allows only 'Products' class to inherit
}


public interface IEntity
{
   int ProductId {get; set;}
   string EmployeeId {get; set;}   //won't work, every class should have props listed here then 
}

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Если вы используете ядро ​​Ef в своем проекте ASP. NET Core, вы можете сопоставить столбец идентификатора таблицы со свойством Id объекта Entity в DbContext.

modelBuilder.Entity<Product>().ToTable("Products").HasKey(k => k.ID);
modelBuilder.Entity<Product>().Property(p=> p.Id).HasColumnName("ProductID");
0 голосов
/ 17 марта 2020

Вы можете реализовать свой интерфейс, даже если класс имеет другое имя свойства для себя.

public interface IEntity
{
    int Id { get; set; }
}

public class Product : IEntity
{
    public int Id
    {
        get => this.ProductId;
        set => this.ProductId = value;
    }
    public int ProductId { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...