【发布时间】:2011-03-17 22:26:55
【问题描述】:
我正在尝试将 Entity Framework 4.1 RC 与 SQL Server 2005 实例一起使用。我创建了一个空数据库,我想将我的 POCO 对象保存到它。我的 POCO 看起来像:
public class Cart
{
public Cart()
{
this.CartId = Guid.NewGuid();
}
public Guid CartId { get; set; }
public decimal TotalCost { get; set; }
public decimal SubTotalCost { get; set; }
public decimal Tax { get; set; }
public decimal EstimatedShippingCost { get; set; }
}
我的 CartContext 是:
public class CartContext : DbContext
{
public DbSet<Cart> Carts { get; set; }
public DbSet<Attribute> Attributes { get; set; }
public DbSet<AttributeItem> AttributeItems { get; set; }
}
我有一个连接字符串:
<add name="CartContext" connectionString="Server=myserver.mynetwork.net;User ID=MyUser;Pwd=mypassword;Initial Catalog=ExistingDb" providerName="System.Data.SqlClient" \>
当我尝试将一个对象添加到上下文并保存它时,我得到:
System.Data.Entity.Infrastructure.DbUpdateException: 更新时出错 条目。请参阅内部异常 细节。 ---> System.Data.UpdateException:一个错误 更新条目时发生。 有关详细信息,请参阅内部异常。 ---> System.Data.SqlClient.SqlException: 对象名称“dbo.Carts”无效。
如果我配置数据库,我可以看到用户连接,在 sys.tables 中查找数据库运行此查询:
SELECT TOP (1)
[Extent1].[Id] AS [Id],
[Extent1].[ModelHash] AS [ModelHash]
FROM [dbo].[EdmMetadata] AS [Extent1]
ORDER BY [Extent1].[Id] DESC
然后尝试插入我的购物车对象。它从不尝试创建 Carts 表。我猜连接字符串有问题,但我在任何地方都找不到有关如何执行此操作的示例。
【问题讨论】:
-
在关闭连接字符串时,您有一个反斜杠,但它应该是一个正斜杠,即 /> 而不是 \>
标签: entity-framework ef-code-first entity-framework-4.1