powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF Core 5: DatabaseFirst: TPT
1 сообщений из 1, страница 1 из 1
EF Core 5: DatabaseFirst: TPT
    #40099443
Maksimka-27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть существующая база данных, сделанная до EF. В БД реализовано наследование Table-per-Type.

Scaffold вытаскивает классы из базы данных.
Но построить модели и извлечь данные я не могу, и не пойму, что делать.

Модели:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
[Table("OBJ")]
public class Obj
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity), Column("objId")]
    public int ObjId { get; set; }
    ....
}

[Table("OBJ_DEP")]
public class ObjDep :Obj
{        
public int DepId { get; set; }  //ref to Obj.ObjId
public string DepName { get; set; }
.....
}

class ApplicationDBContext : DbContext
{
    public DbSet<Obj> Objs { get; set; }
    public DbSet<ObjDep> ObjDeps { get; set; }
}



При Code First ObjDep.DepId не нужен. EF сам создаст навигационное поле с именем ObjId
А вот как указать, что это поле с именем DepId - понять не могу.

Ошибка проявляется уже при обращении к Objs:
Код: c#
1.
IEnumerable<Obj> obj = db.Objs.Take(10);


Microsoft.Data.SqlClient.SqlException: "Недопустимое имя столбца "objId".
Недопустимое имя столбца "objId"."

Help
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF Core 5: DatabaseFirst: TPT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (7): Анонимы (5), Yandex Bot, Bing Bot 2 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]