Имя динамической таблицы в Entity Framework 6 - PullRequest
0 голосов
/ 08 октября 2019

Я использую Entity Framework 6.2 для проекта .NET Framework.

В этом проекте пользователи могут создавать продукты. Каждый продукт связан с типом, обеспечивающим некоторые параметры при создании продукта. .

При создании типа для этого типа создается новая таблица, в которой впоследствии хранятся продукты, связанные с этим типом. Таким образом, мы имеем такой вид взаимодействия:

CREATE product type 'HOUSE' --> Table Product_HOUSE created
INSERT (XXX, XXX) of type 'HOUSE' --> Product (XXX, XXX) with guid '27973904-df0d-4f64-a70c-34706ae78730' inserted in table 'Product_HOUSE'

Проблема в том, что я хотел бы получить доступ к этим таблицам, созданным во время выполнения, но не могу сделать это с помощью EF6.

Стоит отметить, что всепродукты, хранящиеся в таблицах Product_XXX, могут быть ассимилированы с тем же классом C #, который выглядит примерно так:

[DataContract]
public class Product
{
    [DataMember(Name = "external_id")]
    public string ExtId { get; set; }

    [DataMember(Name = "type")]
    public string Type { get; set; }

    [DataMember(Name = "data")]
    public Dictionary<string, object> Data { get; set; }
}

Я хотел бы использовать (если возможно) синтаксис, подобный этому, для доступа к базам данных, созданным во время выполнения:

using (var db = new MyDbEntities())
{
    Product product = await db.Table('Product_HOUSE').FindAsync<Product>("27973904-df0d-4f64-a70c-34706ae78730");
    // Use Automapper to get a DTO object ...
    return productDto;
}

Я нашел несколько старых примеров ( здесь и здесь ), но ни один из них, похоже, не работает / не полезен в моем случае.

Если кто-нибудь знает некоторые приемы, чтобы сделать это в EF6 или что-то еще (LINQ и т. Д.), Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...