using Iesi.Collections.Generic; namespace DomainModel.Entities { public class Customer { public virtual Guid CustomerId { get; set; } public virtual string Firstname { get; set; } public virtual string Lastname { get; set; } //一对多关系:Customer有一个或多个Orders public virtual ISet<Order> Orders { get; set; } } } namespace DomainModel.Entities { public class Order { public virtual Guid OrderId { get; set; } public virtual DateTime OrderDate { get; set; } //多对一关系:Orders属于一个Customer public virtual Customer Customer { get; set; } } }
在提交数据的时间ModelState.IsValid总是为false 问题出在
public virtual Customer Customer { get; set; }这个地方
提交时的数据是:
X-Requested-With:XMLHttpRequest
Form Dataview
OrderId:B8DF8C65-D84D-417B-9DC1-F171BF604BA4
OrderDate:2013-07-09 11:08:52.000
Customer.CustomerId:B8DF8C65-D84D-417B-9DC1-F171BF604BA7
应该是主外键的关系问题,你给Order的Customer赋的值是否存在Customer表中。
主外键关系,
Order表怎么没 customerid
验证前加上这句试试,有可能是数据库自动增长的缘故
ModelState.Remove("CustomerId");
这就看你的orm是怎么配置的了,ModelState.IsValid是验证你输入的数据是否和配置的数据一致。
比如说某个值不能为空,你输入了空值那么就不能通过了。或许是因为你的orm把Customer Customer配置不能为空了。