Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如果DbSet<;T>;实体框架中的MyProperty为null_Entity Framework_Unit Testing_Asp.net Web Api_Moq_Dbcontext - Fatal编程技术网

Entity framework 如果DbSet<;T>;实体框架中的MyProperty为null

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

我对实体框架非常陌生,我采用了db优先的方法,我正在将模型的值设置到DbSet MyClassName中。但当我运行时,它给出了一个异常“myContext.MyClassName为null”附加信息:“对象引用未设置为对象的实例”。我尝试了许多解决方案,但无法创建我的DbSet的对象

**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
,这让我相信您可能在“模仿”它。