【发布时间】:2011-06-22 00:17:21
【问题描述】:
我正在尝试通过实体框架将 Line 添加到以下概念模型中的现有标题。
我已经通过 wcf 数据服务公开了这个模型。我正在尝试添加这样的记录:
SampleModelContainer context = new SampleModelContainer(new Uri("http://localhost:57588/WcfDataService1.svc"));
Line newLine = new Line();
newLine.item = 123;
// Generate new LineId
newLine.LineId = context.Lines.ToList().Last().LineId + 1;
// Grab a random header (doesn't matter right now)
newLine.Header = context.Headers.ToList().First();
context.AddToLines(newLine);
context.SaveChanges();
这会失败,并出现一个错误,指出我的 HeaderId 不能为空。但是,这不应该由EF填写,因为我设置了导航属性吗?如果我填写HeaderId,它可以工作,但我不想每次都设置。
关于我做错了什么有什么想法吗?
编辑:添加了连接字符串
【问题讨论】:
-
这个问题质量很差。标签提到了 WCF,但问题本身并没有任何关于 WCF 与问题相关的单一注释。此外,在一个答案下的评论是提到 WCF 数据服务,这使问题的范围完全不同——我猜你在客户端有问题,不是吗?如果您想首先获得答案,请学习如何提出问题以及如何使用正确的标签 - 我们看不到您的代码,因此我们无法推断那里发生了什么!顺便说一句:
context.Lines.ToList().Last().LineId + 1当我看到那个时我心脏病发作了。 -
@Ladislav 我在问题中说我的 EF 模型是通过 WCF 数据服务公开的。 (第 3 行)提供的所有代码都在我的客户端上。你还想看什么其他代码?除了自动生成的内容之外,我添加的内容很少。此外,这是一个简单的示例项目,足以暴露我的问题,在我的真实数据库中,我们有一组数字序列函数,它们提供一组字母数字主键,这使我现在的简单场景过于复杂。谢谢!
-
好的,对不起。即使我读了你的问题 3 遍,我也完全错过了那部分。
标签: .net wcf entity-framework