我有一个运行vs2013的Web表单应用程序。我正在使用代码优先模型构建应用程序。
我有一个datacontext类和一个初始化类来为一些初始数据提供种子。一切都工作正常,直到我决定更改模型并对我的类之间的关系进行一些更改,然后再添加4个。现在我在初始化类中得到4个错误,说“当前上下文中不存在名称'xxxxx'”这很奇怪,因为其他6个类似的语句工作正常。
我已经清理过,重建了解决方案。重新启动了我的电脑。我不知道还有什么可以尝试的。任何帮助将不胜感激。
以下是代码:
myDataContext:
using System.Data.Entity;
using System.Collections.Generic;
namespace YPGOOS.Models
{
public class myDataContext : DbContext
{
public myDataContext() : base("YPGOOS") { }
public DbSet<Category> Categories { get; set; }
public DbSet<Style> Styles { get; set; }
public DbSet<Product> Products { get; set; }
public DbSet<Size> Sizes { get; set; }
public DbSet<QuantityBreak> QuantityBreaks { get; set; }
public DbSet<Stock> Stocks { get; set; }
public DbSet<Supplier> Suppliers { get; set; }
public DbSet<Finish> Finishes { get; set; }
public DbSet<FinishConstraint> FinishConstraints { get; set; }
public DbSet<FinishAttribute> FinishAttributes { get; set; }
}
}
然后myDatabaseInitialiser类:
using System.Collections.Generic;
using System.Data.Entity;
namespace YPGOOS.Models
{
//public class myDatabaseInitialiser : DropCreateDatabaseIfModelChanges<myDataContext>
public class myDatabaseInitialiser : DropCreateDatabaseAlways<myDataContext>
{
protected override void Seed(myDataContext context)
{
GetCategories().ForEach(c => context.Categories.Add(c));
GetProducts().ForEach(p => context.Products.Add(p));
GetSizes().ForEach(s => context.Sizes.Add(s));
GetQuantityBreaks().ForEach(q => context.QuantityBreaks.Add(q));
GetStyles().ForEach(st => context.Styles.Add(st));
GetStocks().ForEach(x => context.Stocks.Add(x));
GetSuppliers().ForEach(su => context.Suppliers.Add(su));
GetFinishes().ForEach(f => context.Finishes.Add(f));
GetFinishConstraints().ForEach(fc => context.FinishConstraints.Add(fc));
GetFinishAttributes().ForEach(fa => context.FinishAttributes.Add(fa));
}
private static List<Category> GetCategories()
{
var categories = new List<Category> {
new Category
{
CategoryID = 1, etc
我最近添加了最后4个; GetSuppliers,GetFinishes,GetFinishConstraints,GetFinishAttributes以及这些4我收到了错误。
以下是供应商类:
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace YPGOOS.Models
{
public class Supplier
{
[ScaffoldColumn(false)]
public int SupplierID { get; set; }
[Required, StringLength(100), Display(Name = "Supplier Name")]
public string SupplierName { get; set; }
[Required, StringLength(4), Display(Name = "Supplier Code")]
public string SupplierCode { get; set; }
//Navigation Properties
public virtual ICollection<Product> Products { get; set; }
public virtual ICollection<Stock> Stocks { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
}
答案 0 :(得分:0)
public DbSet<Size> Suppliers { get; set; }
为什么供应商是规模的通用?您有供应商类。这只是一个错字吗? intellisense是否开始像自动更正一样?
答案 1 :(得分:0)
尴尬地回答这个,真正的新手问题。我只是在DatabaseInitialiser类中没有一个名为GetSuppliers()的方法 - 只要我把它放在错误消失中。