Я использую 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 и т. Д.), Спасибо!