2013-05-01 14 views
3

我是ASP.NET新手,無法找到我收到的異常的合法響應。我有一個像這樣建立的基本聯絡實體。如何解決「無法設置實體類型的字段/屬性...」

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations.Schema; 
using System.Linq; 
using System.Web; 

namespace admin.Models 
{ 
    public class ContactBase 
{ 
    [System.ComponentModel.DataAnnotations.Key] 
    public Guid ContactId { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public DateTime? BirthDate { get; set; } 
    [ForeignKey ("ContactId")] 
    public virtual ICollection<ContactExtensionBase> ContactExtensionBases { get; set; } 
    [ForeignKey("CustomerAddressId")] 
    public virtual ICollection<CustomerAddressBase> CustomerAddressBases { get; set; } 
    [ForeignKey("Datatel_academictermId")] 
    public virtual ICollection<Datatel_academictermExtensionBase> Datatel_academictermExtensionBases { get; set; } 
    [ForeignKey("Datatel_decisionplanId")] 
    public virtual ICollection<Datatel_decisionplanExtensionBase> Datatel_decisionplanExtensionBases { get; set; } 
} 

}

然後有更多的接觸信息的實體,我已經做了與

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations.Schema; 
using System.Linq; 
using System.Web; 

namespace admin.Models 
{ 
    public class ContactExtensionBase 
{ 
    [System.ComponentModel.DataAnnotations.Key] 
    public Guid ContactId { get; set; } 
    public string Datatel_erpid { get; set; } 
    public string Datatel_ssn { get; set; } 
    public Guid datatel_anticipatedentrytermid { get; set; } 
    public Guid datatel_decisionplanid { get; set; } 
    public virtual ContactBase ContactBases { get; set; } 
    } 
} 

這裏的虛擬連接的是,我使用的顯示同時從信息視圖的實體

@model admin.Models.ContactBase 

@{ 
    ViewBag.Title = "Details"; 
} 

<h2>Details</h2> 

<fieldset> 
<legend>ContactBase</legend> 

<div class="display-label"> 
    @Html.DisplayNameFor(model => model.FirstName) 
</div> 
<div class="display-field"> 
    @Html.DisplayFor(model => model.FirstName) 
</div> 

<div class="display-label"> 
    @Html.DisplayNameFor(model => model.LastName) 
</div> 
<div class="display-field"> 
    @Html.DisplayFor(model => model.LastName) 
</div> 

<div class="display-label"> 
    @Html.DisplayNameFor(model => model.BirthDate) 
</div> 
<div class="display-field"> 
    @Html.DisplayFor(model => model.BirthDate) 
</div> 
<div class="display-label">ERPID</div> 
<div class="display-field"> 
    @Html.DisplayFor(model => model.ContactExtensionBases) 
</div> 
    </fieldset> 
<p> 
@Html.ActionLink("Edit", "Edit", new { id=Model.ContactId }) | 
@Html.ActionLink("Back to List", "Index") 
</p> 

這是我的背景

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using admin.Models; 
using System.Data.Entity; 
using System.Data.Entity.ModelConfiguration.Conventions; 

namespace admin.Models 
{ 
public class RecruiterTest_MSCRMContext : DbContext 
{ 
    public DbSet<ContactBase> ContactBase { get; set; } 
    public DbSet<ContactExtensionBase> ContactExtensionBase { get; set; } 
    public DbSet<CustomerAddressBase> CustomerAddressBase { get; set; } 
    public DbSet<Datatel_academictermExtensionBase> Datatel_academictermExtensionBase { get; set; } 
    public DbSet<Datatel_decisionplanExtensionBase> Datatel_decisionplanExtensionBase { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 


     } 

    } 
} 

每當我試着查看詳情頁面,我得到以下異常:

無法設置實體類型System.Data.Entity.DynamicProxies.ContactBase_97C960FB8ACFC3256638071319F26587D2DD8109C9B58E668A100CFAE56F6E4B字段/屬性ContactExtensionBases。詳情請參閱InnerException。

的InnerException空

回答

0

ContactExtensionBase的ContactBases可能需要一個ICollection的:

public class ContactExtensionBase 
{ 
    [System.ComponentModel.DataAnnotations.Key] 
    public Guid ContactId { get; set; } 
    public string Datatel_erpid { get; set; } 
    public string Datatel_ssn { get; set; } 
    public Guid datatel_anticipatedentrytermid { get; set; } 
    public Guid datatel_decisionplanid { get; set; } 
    public virtual ICollection<ContactBase> ContactBases { get; set; } 
} 
相關問題