WCF Odata实体框架关系名称

时间:2012-09-13 01:28:11

标签: wcf entity-framework wcf-data-services odata entity-framework-5

我首先遇到EF代码和Odata的问题。

如果我导航到元数据,那么我发现我的所有关系都是这样定义的:

<NavigationProperty Name="Jobs" ToRole="Jobs" FromRole="Applicant" Relationship=".Applicant_Jobs"/>

注意关系名称前的句号?

这使我无法向控制台应用程序添加服务引用。它提供了自定义工具错误:

指定的架构无效。错误:关系属性无效 - 值'.Applicant_Jobs'根据其数据类型无效。

我的数据合约在此处定义:

[DataContract]
public class Applicant
{
[DataMember]
public int ID { get; set; }

[DataMember]
public string Forename { get; set; }

[DataMember]
public string Surname { get; set; }

[DataMember]
public string EmailAddress { get; set; }

[DataMember]
public string PassPhrase { get; set; }

[DataMember]
public string City { get; set; }

[DataMember]
public string County { get; set; }

[DataMember]
public string Country { get; set; }

[DataMember]
public DateTime CreationDate { get; set; }

[DataMember]
public ICollection<Job> Jobs { get; set; }
}

[DataContract]
public class Job
{
[DataMember]
public Applicant Applicant { get; set; }

[DataMember]
public JobStatus JobStatus { get; set; }

[DataMember]
public int ID { get; set; }

[DataMember]
[ForeignKey("Applicant")]
public int ApplicantID { get; set; }

[DataMember]
[ForeignKey("JobStatus")]
public int JobStatusID { get; set; }

[DataMember]
public string JobTitle { get; set; }

[DataMember]
public string WebsiteURL { get; set; }

[DataMember]
public string Reference { get; set; }

[DataMember]
public string Location { get; set; }

[DataMember]
public string Salary { get; set; }

[DataMember]
public string ContactName { get; set; }

[DataMember]
public string ContactEmail { get; set; }

[DataMember]
public string ContactPhone { get; set; }

[DataMember]
public string Pros { get; set; }

[DataMember]
public string Cons { get; set; }

[DataMember]
public string GeneralNotes { get; set; }

[DataMember]
public DateTime CreationDate { get; set; }

[DataMember]
public bool Archived { get; set; }

[DataMember]
public ICollection<JobProgression> JobProgress { get; set; }
}

正如您所看到的,我并没有在任何地方设置句号,但由于某种原因,我的模型中的每个关系都会生成一个,这意味着自定义工具失败。

1 个答案:

答案 0 :(得分:2)

事实证明合同需要在命名空间中。这就是提供商试图放在点前面的东西。

相关问题