我正在创建一个基本的网上商店应用程序以练习语法。您可以在下面找到我的课程:
型号:
[Table("Items")]
public class ShopItem
{
public ShopItem()
{
}
public ShopItem(int id, string name, double price)
{
Id = id;
Name = name;
Price = price;
}
[Key]
public int Id { get; set; }
[Required(ErrorMessage ="This field is a must")]
public String Name { get; set; }
[Required(ErrorMessage = "This field is a must")]
public double Price { get; set; }
}
IRepository接口:
public interface IRepository<T> where T : class
{
IEnumerable<T> List { get; }
T FindById(int id);
void Update(T entity);
void Delete(T entity);
}
存储库实现:
public class ShopItemRepository : IRepository<ShopItem>
{
Models.ShopItemRepository _webshopContext;
public ShopItemRepository() {
_webshopContext = new Models.ShopItemRepository();
}
public IEnumerable<ShopItem> List => throw new NotImplementedException();
public ShopItem FindById(int Id) => (from r in _webshopContext.ShopItem where r.Id == Id select r).FirstOrDefault();
void IRepository<ShopItem>.Update(ShopItem entity)
{
_webshopContext.Entry(entity).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
_webshopContext.SaveChanges();
}
void IRepository<ShopItem>.Delete(ShopItem entity)
{
_webshopContext.Remove(entity);
_webshopContext.SaveChanges();
}
我正在尝试使用
迁移数据库启用迁移
和
添加迁移
命令,但是这样做时,我收到以下错误消息:
使用“ 2”个参数调用“ SetData”的异常:在程序集“ Microsoft.VisualStudio.ProjectSystem.VS.Implementation,版本”中键入“ Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject” = 16.0.0.0, 文化=中性,PublicKeyToken = xxxxxxxxxxxx'未标记为可序列化。” 在C:\ Users \ nagycso.nuget \ packages \ entityframework \ 6.2.0 \ tools \ EntityFramework.psm1:720 char:20 + $ domain.SetData <<<<('project',$ project) + CategoryInfo:未指定:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException
System.NullReferenceException:对象引用未设置为对象的实例。 在System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetPropertyValue [T](项目项目,字符串propertyName)处 在System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(字符串configurationTypeName,布尔useContextWorkingDirectory) 在System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(String contextTypeName)处 在System.Data.Entity.Migrations.EnableMigrationsCommand。<> c__DisplayClass2。<。ctor> b__0() 在System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(操作命令) 对象引用未设置为对象的实例。
我知道NullReferenceException是什么,但我仍在努力找出问题所在。我有一些虚拟数据,我已经将它们放入数据库中。
您能帮我找出解决方案吗?
谢谢。