2015-05-04 3 views
4

Цель состоит в том, чтобы иметь API со всеми полями GravityZone с названием зоны, исходящей из таблицы Zone. Я пробовал несколько перестановок следующего кода без успеха. В настоящее время он появляется с нулевым значением для зоны, в которой я надеюсь получить либо имя, либо строку или часть объекта. Я работаю с существующими таблицами, которые я не могу изменить.Entity Framework 6.1.3 Сопоставление внешнего ключа с непервичным ключом

Модели:

public partial class Zone 
{ 
    [Key] 
    [Column("ZONE_ID")] 
    public decimal ZoneId { get; set; } 

    [Column("ZONE_CODE")] 
    public decimal ZoneCode { get; set; } 

    [Column("ZONE_NAME")] 
    public string ZoneName { get; set; } 

    public virtual ICollection<GravityZone> GravityZones { get; set; } 
} 

public partial class GravityZone 
{ 
    [Key] 
    [Column("GRAVITY_ID")] 
    public decimal GravityZoneId { get; set; } 

    [Column("ZONE_CODE")] 
    public decimal ZoneCode { get; set; } 

    [Column("ELEVATION")] 
    public decimal Elevation { get; set; } 

    [Column("REMARK")] 
    [StringLength(2000)] 
    public string Remark { get; set; } 

    public virtual Zone Zone { get; set; } 
} 

Контекст (только реляционная часть)

modelBuilder.Entity<Zone>() 
    .HasKey(e => e.ZoneCode); 

modelBuilder.Entity<GravityZone>() 
    .HasRequired(e => e.Zones); 

Все остальное приходит назад отлично подходит для этой части, за исключением:

"Zones":null,

ответ

8

Это стало возможным в Entity Framework 7 (то есть, EF ядра 1,0).

От .Net Framework Entity User Voice Unique Constraint (i.e. Candidate Key) Support:

Поддержка этой функции была добавлена ​​в EF Ядра 1.0, и мы не планируем добавить его в Ef6 кодовую.

-1

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

Edit:

Похожие вопросы: Entity Framework 5.0 composite foreign key to non primary key - is it possible?

Вот ответ на ваш вопрос. Поскольку я думал, что EF не понимает понятие уникальности с исключением первичного ключа.

Entity Framework foreign keys to non-primary key fields

+0

Это очень плохо. Еще больше ворчит, прежде чем я выберу этот проект. Спасибо за ответ! – stb