2013-04-08 11 views
0

수많은 외래 키 열이있는 표가 있습니다. 지금은 키가 보여 지지만 this example과 같은 올바른 데이터를 원합니다. 다음과 같습니다값은 null 일 수 없습니다. 매개 변수 이름 : items. 검도의 외래 키보기 UI Grid

public partial class RuleEntry 
{ 
    public RuleEntry() 
    { 
     this.RuleEntriesCases = new HashSet<RuleEntriesCas>(); 
    } 
    [Key] 
    public int ID { get; set; } 
    public string Country { get; set; } 
    public Nullable<int> Family { get; set; } 
    public Nullable<int> IP { get; set; } 
    public string RuleKey { get; set; } 
    public Nullable<int> Status { get; set; } 
    public string Title { get; set; } 

    [ForeignKey("Country")] 
    internal virtual Country Country1 { get; set; } 
    [ForeignKey("Family")] 
    internal virtual Family Family1 { get; set; } 
    [ForeignKey("IP")] 
    internal virtual IP IP1 { get; set; } 
    [ForeignKey("Status")] 
    internal virtual RuleStatus RuleStatus { get; set; } 
    [ScriptIgnore] 
    internal virtual ICollection<RuleEntriesCas> RuleEntriesCases { get; set; } 
} 

모델 컨텍스트 : 코드에 따라

내가 함께 그리드를 채우는 것입니다

내 나라 클래스는 다음과 같습니다
public partial class entitiesName: DbContext 
{ 
    public entitiesName() 
     : base("name=entitiesName") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 

    public DbSet<Case> Cases { get; set; } 
    public DbSet<Country> Countries { get; set; } 
    public DbSet<Family> Families { get; set; } 
    public DbSet<IP> IPs { get; set; } 
    public DbSet<RuleEntry> RuleEntries { get; set; } 
    public DbSet<RuleEntriesCas> RuleEntriesCases { get; set; } 
    public DbSet<Rule> Rules { get; set; } 
    public DbSet<RuleStatus> RuleStatuses { get; set; } 
} 

:

public partial class Country 
{ 
    public Country() 
    { 
     this.RuleEntries = new HashSet<RuleEntry>(); 
    } 
    [Key] 
    public string Code { get; set; } 
    public string Name { get; set; } 

    public virtual ICollection<RuleEntry> RuleEntries { get; set; }  
} 

그리고 내 cshtml 파일은 다음과 같습니다.

columns.ForeignKey-라인이 어려운 디버그 오류를

Value cannot be null. Parameter name: items

내가 문제를 파악하는 방법을 아무 단서를 생성하지만, 구글은 늘 하나 나에게 모든 관련 답변을 제공합니다. 감사!

답변

0

당신은 외래 키의 ID를 지정할 필요하지 탐색 속성 :

이이 문제를 해결해야합니다 GridColumnFactory<TModel>.ForeignKey()

public virtual GridBoundColumnBuilder<TModel> ForeignKey<TValue>(
    Expression<Func<TModel, TValue>> expression, 
    IEnumerable data, 
    string dataFieldValue, 
    string dataFieldText 
; 
+0

의이 오버로드를 사용

columns.ForeignKey( r => r.Country.Code, (IEnumerable) ViewData["Countries"], "Code", "Name" ); 

당신의 대답을 주셔서 감사합니다, 나는 이것이 오류를주는 것이 아닌가 걱정됩니다 : "대리자가 아니기 때문에 람다 식을 'string'을 입력 할 수 없습니다. 유형 ". 이 문제를 어떻게 해결할 생각인가요? –

+0

@OskarEriksson 내 대답을 –

+0

업데이트 주셔서 감사합니다.하지만 여전히 동일한 람다 식 오류가 발생합니다. 내 코드와 코드의 유일한 차이점은 "System.Collections.IEnumerable"을 얻었습니다. –