如果我有一个名为STOREitems的数据库,并且我在该数据库标题PRICES中有一个表,并且模型名称是Price,我会写这样的吗?
public class STOREitemsDBContext : DbContext
{
public DbSet<Price> PRICES { get; set; }
}
我参与了一个MVC教程,现在我正在尝试使用我已经访问的现有数据库自己做事。该教程没有解释如何编写一个DB上下文类,它只是简单地给了我并说明了它的作用。
答案 0 :(得分:1)
您必须为上下文添加构造函数,您可以在其中设置connectionstring
像:
public class STOREitemsDBContext : DbContext
{
public STOREitemsDBContext():base("Connectionstring")
{
}
public DbSet<Price> PRICES { get; set; }
}
在App.config中,您必须添加一个连接字符串,如:
现在您可以将值保存在DB
中STOREitemsDBContext sidbcontext = new STOREitemsDBContext();
Price price = new Price(10.10);
sidbcontext.Price.Add(price);
sidbcontext.SaveChanges();
应该适合你
答案 1 :(得分:1)
如果您要使用现有数据库,则需要关闭上下文中的数据库初始化。
public class StoreItemsContext : DbContext
{
public StoreItemsContext()
: base("YourConnectionStringName")
{
Database.SetInitializer<StoreItemsContext>(null);
}
// DbSet's here
publlic DbSet<Price> Prices { get; set; }
}
注意:类和属性名称应该是首字母大写的首字母。
如果您的表名与实体类名的默认实体框架约定不匹配,则为复数。然后,您需要明确告诉EF将数据映射到/来自哪个表:
[Table("PRICES")]
public class Price
{
...
}
对于这个特定的实体,如果没有它,你应该没事,但是我用它来提供一个例子。