Entity framework 如果DbSet<;T>;实体框架中的MyProperty为null
我对实体框架非常陌生,我采用了db优先的方法,我正在将模型的值设置到DbSet MyClassName中。但当我运行时,它给出了一个异常“myContext.MyClassName为null”附加信息:“对象引用未设置为对象的实例”。我尝试了许多解决方案,但无法创建我的DbSet的对象Entity framework 如果DbSet<;T>;实体框架中的MyProperty为null,entity-framework,unit-testing,asp.net-web-api,moq,dbcontext,Entity Framework,Unit Testing,Asp.net Web Api,Moq,Dbcontext,我对实体框架非常陌生,我采用了db优先的方法,我正在将模型的值设置到DbSet MyClassName中。但当我运行时,它给出了一个异常“myContext.MyClassName为null”附加信息:“对象引用未设置为对象的实例”。我尝试了许多解决方案,但无法创建我的DbSet的对象 **1st Tried** MyClass myObj = new MyClass(); myObj.Id = stud.Id; myObj.StudId = stud.StudId; myObj.Course
**1st Tried**
MyClass myObj = new MyClass();
myObj.Id = stud.Id;
myObj.StudId = stud.StudId;
myObj.CourseId = stud.CourseId;
myContext.MyClass.Add(myObj) //Here exception starts with messages.
**2nd Tried**
MyClass langTest = new MyClass();
langTest.Id = 1;
langTest.StudentId = 500;
foreach(MyClass entity in myContext.MyClass)// Here getting exception because MyClass instance is null.
{
var entry = _context.Entry(langTest);
if (entry.State == EntityState.Detached)
{
myContext.MyClass.Add(entity);
}
}
如果有任何解决方案或建议,请发表评论,非常感谢。如果您使用数据库优先方法,实体框架将生成您可以使用的DbContext。在*.Context.tt下检查,您将找到您应该使用的DbContext。 例如,在DbContext类中检查实体是否在中
public virtual DbSet<yourEntity> entities { get; set; }
公共虚拟数据库集实体{get;set;}
如果使用数据库优先方法实体框架,将生成可使用的DbContext。在*.Context.tt下进行检查,您将找到您应该使用的DbContext。
例如,在DbContext类中检查实体是否在中
public virtual DbSet<yourEntity> entities { get; set; }
公共虚拟数据库集实体{get;set;}
是的,它是我使用的虚拟数据库集MyClasses{get;set;}是的,它是我使用的虚拟数据库集MyClasses{get;set;}为什么您的问题标记了moq
?因为我正在使用moq进行单元测试。我的测试函数工作正常,但在我调用的函数中出现了错误。我之所以问这个问题,是因为您似乎没有构造MyContext
,这让我相信您可能是在“模仿”“它。为什么你的问题有moq
标记?因为我正在使用moq进行单元测试。我的测试函数工作正常,但是我调用的函数出现了错误。我这样问是因为您似乎没有构造MyContext
,这让我相信您可能在“模仿”它。