Я создаю уровень доступа к данным, используя шаблон репозитория и Code First для .NET Core.У меня не было проблем с Code First, когда это был просто обычный .NET Framework, но у меня много проблем с .NET Core.
Текущий вопрос: у меня есть куча простых классов, и яя пытаюсь получить только список того, что хранится в таблице, и я получаю странное сообщение об ошибке: Неверное имя столбца «AspNetUserId».Однако у меня нет такого названия столбца.У меня есть таблица AspNetUsers, и у нее есть поле Id.Другие таблицы, на которые ссылается эта таблица, используют поле UserId в качестве FK.
Ниже приведен упрощенный код основных классов:
CREATE TABLE [dbo].[AspNetUsers](
[Id] [uniqueidentifier] NOT NULL,
...
CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH ...
CREATE TABLE [dbo].[Accounts](
[AccountAddress] [nvarchar](150) NOT NULL,
[UserId] [uniqueidentifier] NOT NULL,
...
CONSTRAINT [PK_Accounts_1] PRIMARY KEY CLUSTERED
(
[AccountAddress] ASC
)WITH...
public class AspNetUser
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public Guid Id { get; set; } // Id (Primary key)
...
}
public class DataContext : DbContext
{
public DbSet<Account> Accounts { get; set; }
public DbSet<AspNetUser> AspNetUsers { get; set; }
...
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<AspNetUser>()
.HasMany(p => p.Accounts)
.WithOne(p => p.AspNetUser);
modelBuilder.Entity<AspNetUser>()
.HasOne(p => p.Currency);
modelBuilder.Entity<Account>()
.HasOne(p => p.Currency);
...
base.OnModelCreating(modelBuilder);
}