使用PK的一部分关联导航属性

时间:2018-10-25 19:53:58

标签: entity-framework entity-framework-6 entity-framework-core

假设我们有以下数据库

enter image description here

我们有以下课程

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.LanguageResourceIdLanguageResource.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中完成。 :)

0 个答案:

没有答案