Предполагая, что у нас есть следующие db
, и у нас есть следующие классы
class Context : DbContext
{
public DbSet<Control> Control { get; set; }
public DbSet<LanguageResource> LanguageResource { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<LanguageResource>()
.HasKey(l => new { l.LanguageResourceId, l.CultureCode });
modelBuilder.Entity<Control>()
.HasKey(c => c.ControlId);
}
}
class Control
{
public int ControlId { get; set; }
public int LanguageResourceId { get; set; }
public ICollection<LanguageResource> LanguageResources { get; set; }
}
class LanguageResource
{
public int LanguageResourceId { get; set; }
public string CultureCode { get; set; }
public string Text { get; set; }
}
Есть ли способнастроить Context
для связи Control.LanguageResourceId
с LanguageResource.LanguageResourceId
для заполнения Control.LanguageResources
.
Я думаю сделать что-то подобное ... но, очевидно, это не работает ..: D
var control =
context
.Control
.Include(c => c.LanguageResources)
.First();
/// {
/// ControlId : 1
/// LanguageResources : [
/// {
/// LanguageResourceId : 1,
/// CultureCode : en-US
/// Text : Hello
/// },
/// {
/// LanguageResourceId : 1,
/// CultureCode : en-CA
/// Text : Hi
/// }
/// ]
/// }
У меня есть только доступ только для чтения к базе данных, поэтому изменение таблицы / полей не может быть и речи.:)
Мы используем EF6, но я хотел бы знать, можно ли это сделать и в EF Core.:)