.net 为什么这个实体框架代码没有保存到数据库?

.net 为什么这个实体框架代码没有保存到数据库?,.net,sql-server,entity-framework,sql-server-2008,entity-framework-4,.net,Sql Server,Entity Framework,Sql Server 2008,Entity Framework 4,我们有一个简单的每类型表实体框架4.0模型:- 所有课程都是POCO的 Post类是抽象的 讨论和列表是从帖子继承的类,它们是具体的(如图所示) 当我们试图保存讨论时,我们会执行以下代码:- Posts.AddObject(讨论) Sql Server语法分为两部分。第二个错误。注意sql模式名称空间吗?为什么呢? (代码取自) 注意,表名是[XWingModelStoreContainer]。[Discussions]??这不应该是[dbo].[讨论]??我们如何解决这个问题? 更新

我们有一个简单的每类型表实体框架4.0模型:-

  • 所有课程都是POCO的
  • Post类是
    抽象的
  • 讨论
    列表
    是从帖子继承的类,它们是
    具体的
    (如图所示)
当我们试图保存
讨论时
,我们会执行以下代码:-

Posts.AddObject(讨论)

Sql Server语法分为两部分。第二个错误。注意sql模式名称空间吗?为什么呢? (代码取自)

注意,表名是[XWingModelStoreContainer]。[Discussions]??这不应该是[dbo].[讨论]??我们如何解决这个问题?

更新: 另外,这是我们的设计师属性的另一个屏幕截图。。因此您可以看到,我们认为它应该调用[dbo],因为这是默认的
数据库方案名称

在Xml
edmx
文件中。。这里有两条写着名字的线

<edmx:StorageModels>
<Schema Namespace="XWingModel.Store" Alias="Self" 
     Provider="System.Data.SqlClient" ProviderManifestToken="2008"
      xmlns:store="http://schemas.microsoft.com.. snip ..."
      xmlns="http://schemas.microsoft.com/ ..snip ..">
    <EntityContainer Name="XWingModelStoreContainer">
.....

.....

<!-- C-S mapping content -->
<edmx:Mappings>
  <Mapping xmlns="http://schemas.microsoft.c.. snip .." Space="C-S">
    <Alias Key="Model" Value="XWingModel" />
    <Alias Key="Target" Value="XWingModel.Store" />
    <EntityContainerMapping CdmEntityContainer="XWingEntities" 
        StorageEntityContainer="XWingModelStoreContainer">
.......

.......
这也有帮助吗?我不知道这些名称是如何出现的(我假设是自动生成的),我需要如何更改它们?如果是这样的话,看起来只有通过xml文件才能实现。。这很好。。但是感觉。。。错了吗


干杯:)

我遇到了类似的问题,通过确保子表设置了主键,问题得到了解决

即使子表与父表之间有一个FK,您仍然需要将这些字段设置为PK,否则EF不知道如何在子表上执行INSERT

因此,在您的示例中,尝试将PostId设置为Discussion表上的主键,然后刷新您的模型


试一试。

+1。我遇到了一个非常类似的问题。我希望@Alex James仍能提供帮助?Win:)就是这样;)令人惊叹的!!谢谢
<!-- C-S mapping content -->
<edmx:Mappings>
  <Mapping xmlns="http://schemas.microsoft.c.. snip .." Space="C-S">
    <Alias Key="Model" Value="XWingModel" />
    <Alias Key="Target" Value="XWingModel.Store" />
    <EntityContainerMapping CdmEntityContainer="XWingEntities" 
        StorageEntityContainer="XWingModelStoreContainer">
.......