gpt4 book ai didi

entity-framework - Entity Framework 4.1Code 首先连接到Sql Server 2005

转载 作者:行者123 更新时间:2023-12-04 14:34:25 24 4
gpt4 key购买 nike

我正在尝试将 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: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.UpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid object name '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 表。我猜连接字符串有问题,但我无法在任何地方找到有关如何执行此操作的示例。

最佳答案

DbContext 不会因为它不存在而创建表。使用现有数据库后,您还必须手动创建表或创建自定义初始值设定项。默认初始值设定项只能删除数据库并使用所有必需的表创建新的数据库。

例如,您可以调用:

context.Database.Delete();
context.Database.Create();

或者:
context.Database.CreateIfNotExists();

或者:
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyContext>());
// You don't need to call this. Initialization takes place anyway if context
// needs it but you can enforce initialization for example in the application
// startup instead of before the first database operation
context.Database.Initialize(true);

关于entity-framework - Entity Framework 4.1Code 首先连接到Sql Server 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5346038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com