我遇到以下问题:我创建了一个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
这就是我如何制作一张新表:
这就是我如何使用EntityFramework
答案 0 :(得分:0)
根据我的理解,你试图添加一行,而不是新表,我可能错了,但你已经定义了表code-first,model first或database-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)。如果您尝试进行代码优先初始化,那么this和this将帮助您入门。