SQL Server和实体框架不保存更改

时间:2015-05-08 20:47:01

标签: c# sql sql-server entity-framework

我遇到以下问题:我创建了一个SQL Server LocalDB实例并创建了一个名为player的简单表。然后我添加了一个ADO.Net实体框架数据模型(数据库到代码)并实例化了POCO类Player

然后我将实例添加到DbContext的{​​{1}}属性中,并执行了Player方法 - 完全没有效果。

也许我选错了SQL提供程序(因为有2个SQL Server提供程序:SaveChanges()和SQL Server)?

这是我的localdb文件(db)的属性:

.mdf

我创建了这样的数据库:

Provider: .NET Framework-Datenanbieter für SQL Server
Type: Microsoft SQL-Server
Connection string: Data Source=(LocalDB)\v11.0;AttachDbFilename="C:\Users\Me\documents\visual studio 2013\Projects\MsSQLSample\MsSQLSample\myLocalDb.mdf";Integrated Security=True

然后我添加了一个表并将主键设置为New Element --> Service-based Db. 等...

我不知道为什么,但我添加到contexts属性的实例都没有被db占用。

Identity ad NOT Null

编辑:这就是我如何创建一个新的localdb-instance record_new_db

这就是我如何制作一张新表: record_new_table

这就是我如何使用EntityFramework new_entity_model

1 个答案:

答案 0 :(得分:0)

根据我的理解,你试图添加一行,而不是新表,我可能错了,但你已经定义了表code-firstmodel firstdatabase-first。< / p>

using (var db = new PlayerContext()) 
{ 
    Player player= new Player() 
    { 
        IpAddress = "test";
    }; 
    var newRow = context.Set<Player>();
    newRow.Add(player); 
    db.SaveChanges(); 
}
//sidenote: once saveChanges() occured, Id of the new player is saved in the 'player' object

如果您确实在运行应用程序时尝试添加表(在用户输入上),我建议您重新考虑数据库设计(ERD)。如果您尝试进行代码优先初始化,那么thisthis将帮助您入门。