Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF Odata实体框架关系名称_Wcf_Entity Framework_Wcf Data Services_Odata_Entity Framework 5 - Fatal编程技术网

WCF Odata实体框架关系名称

WCF Odata实体框架关系名称,wcf,entity-framework,wcf-data-services,odata,entity-framework-5,Wcf,Entity Framework,Wcf Data Services,Odata,Entity Framework 5,我对EF代码优先和Odata有问题 如果我导航到元数据,我会发现我的所有关系都是这样定义的: <NavigationProperty Name="Jobs" ToRole="Jobs" FromRole="Applicant" Relationship=".Applicant_Jobs"/> 注意关系名称前的句号吗 这使我无法向控制台应用程序添加服务引用。它给出了一个自定义工具错误: 指定的架构无效。错误:关系属性无效-值“.applicator_Jobs”根据其数据类型无效

我对EF代码优先和Odata有问题

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

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

注意关系名称前的句号吗

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

指定的架构无效。错误:关系属性无效-值“.applicator_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; }
}
[DataContract]
公开课申请人
{
[数据成员]
公共int ID{get;set;}
[数据成员]
公共字符串名{get;set;}
[数据成员]
公共字符串姓氏{get;set;}
[数据成员]
公共字符串电子邮件地址{get;set;}
[数据成员]
公共字符串密码短语{get;set;}
[数据成员]
公共字符串City{get;set;}
[数据成员]
公共字符串country{get;set;}
[数据成员]
公共字符串国家{get;set;}
[数据成员]
公共日期时间创建日期{get;set;}
[数据成员]
公共ICollection作业{get;set;}
}
[数据合同]
公开课工作
{
[数据成员]
公共申请人{get;set;}
[数据成员]
public JobStatus JobStatus{get;set;}
[数据成员]
公共int ID{get;set;}
[数据成员]
[外国钥匙(“申请人”)]
public int applicationId{get;set;}
[数据成员]
[外键(“工作状态”)]
public int JobStatusID{get;set;}
[数据成员]
公共字符串JobTitle{get;set;}
[数据成员]
公共字符串网站URL{get;set;}
[数据成员]
公共字符串引用{get;set;}
[数据成员]
公共字符串位置{get;set;}
[数据成员]
公共字符串{get;set;}
[数据成员]
公共字符串ContactName{get;set;}
[数据成员]
公共字符串ContactEmail{get;set;}
[数据成员]
公共字符串联系人电话{get;set;}
[数据成员]
公共字符串Pros{get;set;}
[数据成员]
公共字符串Cons{get;set;}
[数据成员]
公共字符串GeneralNotes{get;set;}
[数据成员]
公共日期时间创建日期{get;set;}
[数据成员]
公共bool存档{get;set;}
[数据成员]
公共ICollection作业进度{get;set;}
}

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

事实证明契约需要在名称空间中。这就是提供商试图摆在dot面前的内容。

您的合同在名称空间中吗?不,当我把它放在名称空间中时,它解决了问题。如果你加上这个作为回答,我会接受的。谢谢仅供参考,您不需要WCF数据服务或EF的所有属性;两者都将完全理解您在那里布置的类,将其作为原始POCO类。