mar*_*yam 28 entity-framework ef-code-first
DB有一张桌子PackagingInfo.我有一Package节课,还有一节课ShopEntities : DbContext.
// Entity (ex. Package.cs)
[Table("PackagingInfo")]
public class Package
{
public decimal PackageID { get; set; }
public decimal Title { get; set; }
public decimal Cost { get; set; }
public bool isFree { get; set; }
}
// Entity Context (ex. ShopEntities.cs)
public class ShopEntities : DbContext
{
public DbSet<Package> Packages { get; set; }
}
// Controller Action (ex. HomeController.cs)
public ActionResult Index()
{
ShopEntities _db = new ShopEntities();
var q = _db.Packages.ToList();
return View(q);
}
Run Code Online (Sandbox Code Playgroud)
在实例化_db上下文并检查其Packages属性后,会注意到异常:
The entity type Package is not part of the model for the current context.
Run Code Online (Sandbox Code Playgroud)
我已经编辑了这个问题并要求重新打开,因为在模型第一种方法中也出现了这种情况,其中表映射是在EDMX文件中完成的,而不是在这里注意到的注释:
模型浏览器窗口Package在机器人中显示模型和商店实体类型,实体的表映射显示每个属性正确映射到表列.这与注释代码优先样式完成的映射相同.
显式添加\xe2\x80\x9cDatabaseGenerated\xe2\x80\x9d属性来设置\xe2\x80\x9cidentity\xe2\x80\x9d数据库中列的值
[DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.Identity)]\nRun Code Online (Sandbox Code Playgroud)\n\n指定十进制数据类型的精度。这是因为默认情况下,它假定十进制数据类型的小数点后有两个数字。我们需要将其设置为0。
\n\nmodelBuilder.Entity<User>().Property(x => x.ID).HasPrecision(16, 0);\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
12272 次 |
| 最近记录: |