1

我首先遇到了 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; }
}

如您所见,我并没有在任何地方打上句号,但出于某种原因,我的模型中的每个关系都生成了一个句号,这意味着自定义工具失败了。

4

1 回答 1

2

事实证明,合约需要在命名空间中。这就是提供商试图放在点前面的内容。

于 2012-09-13T07:31:05.640 回答