长期聆听者,第一次来电者。
我可能对此采取了错误的方法,所以任何帮助都会很棒。
我正在使用 C#、MVC 4、Code First、Entity Framework 4.3 和 Razor。
我正在尝试将 EF 数据类和一些方法拆分为一个单独的类项目,以便它们通常可以被多个其他项目引用。我创建了这个简化的示例来尽可能地突出这个问题。
所以在一个课堂项目中,我有:
public MyGeneric(string name)
{
ID = Guid.NewGuid();
Name = name;
}
public Guid ID { get; set; }
public string Name { get; set; }
public void AddThis(MyGeneric obj)
{
using (var db = Activator.CreateInstance<myDbContext>())
{
var myOthers = from mo in db.MyOther
where mo.OtherID == obj.ID
select mo;
myOthers.ForEach(mo => db.MyOther.Add(mo));
db.SaveChanges();
}
}
然后我可以在主项目中引用它,例如:
public class SampleInherit : MyGeneric
{
public SampleInherit(string newName, string secName)
: base(newName)
{
SecName = secName;
}
public string SecName { get; set; }
public void DoSomething(SampleInherit obj)
{
base.AddThis(obj);
// do other stuff
}
}
我要做的是将一些类及其方法通用化(这是一个词吗?)到一个单独的辅助项目中。这个附带项目将提供基类(按需要的顺序):
- 使用 EF DbContext 创建/访问数据库,
- 允许添加更多属性,
- 提供影响基础数据的方法/程序,
- 更适合主项目的重命名。
现在,如果我只是将基类继承到主项目中的类中,那么除了基类引用 myDbContext 和 LINQ 语句中的实体对象引用之外,它都可以工作。
你能后期绑定 DataContext 还是我把自己画到一个角落里?
为您能提供的所有帮助而欢呼。