Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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
C# 从DbSet继承<;张力>;首先是实体框架代码_C#_Entity Framework - Fatal编程技术网

C# 从DbSet继承<;张力>;首先是实体框架代码

C# 从DbSet继承<;张力>;首先是实体框架代码,c#,entity-framework,C#,Entity Framework,我想问一下,是否可以创建从DbSet继承的类集合,并在DbContext中使用该集合。我首先使用实体框架-代码 我有一个简单的班,学生: public class Student { public int StudentId { get; set; } public string Name { get; set; } } 然后我尝试创建自定义StudentCollection,在这里我可以定义自定义方法: public class StudentCollection : DbS

我想问一下,是否可以创建从DbSet继承的类集合,并在DbContext中使用该集合。我首先使用实体框架-代码

我有一个简单的班,学生:

public class Student
{
    public int StudentId { get; set; }
    public string Name { get; set; }
}
然后我尝试创建自定义StudentCollection,在这里我可以定义自定义方法:

public class StudentCollection : DbSet<Student>
{
    public void CustomAdd(Student student) { /*...*/ }
    public bool Exists(Student student) { return true; }

}

谢谢您的帮助。

您在做什么,需要从
DbSet
派生一个类?可能还有其他方法可以达到相同的最终目标。您是否考虑过在
DbSet
上使用扩展方法?对于
CustomAdd(Student-Student)
您应该真正重写
DbContext.SaveChanges()
我尝试实现自定义集合,我可以将表集合的责任委托给它。我知道这是可以使用的。我尝试做的是类似于
teacher.Students.CustomAdd(newStudent)
public class-teacher{public-virtualstudentcollection-Students{get;set;}}}
public class ModelContext : DbContext
{
  //typical use: Works ok
  public virtual DbSet<Student> Students { get; set; }

  //Dreamed use: Generate error, EntityType 'StudentCollection' has no key defined.
  public virtual StudentCollection ExtendedStudents { get; set; }
}
Db.ExtendedStudents.CustomAdd(newStudent);