首先,看类定义: Persons为一个实体类。public class IMSDB
{
public DBSet<Person> Persons { get; set; }
}public class DBSet<TEntity>
{
public bool Del(int id)
{
return true;
}
}在调用的地方:IMSDB IMSDB = new IMSDB();
IMSDB.Persons.Del(1);我想以IMSDB.Persons.Del(1);这种方式调用,但现在这种肯定不行,会说没有实例化。如果改成静态的,会报错:请改用类型名来限定它,我只想用IMSDB.Persons.Del调用而不加限定,请问用什么方法能实现这种调用方式?非常感谢。好像可以通过IMSDB继承一个类来实现DBSet的实例化,类似于EF中继承的DBContext就可以实现这个效果,但我不明白他的原理,请问具体怎么做呢?
{
public DBSet<Person> Persons { get; set; }
}public class DBSet<TEntity>
{
public bool Del(int id)
{
return true;
}
}在调用的地方:IMSDB IMSDB = new IMSDB();
IMSDB.Persons.Del(1);我想以IMSDB.Persons.Del(1);这种方式调用,但现在这种肯定不行,会说没有实例化。如果改成静态的,会报错:请改用类型名来限定它,我只想用IMSDB.Persons.Del调用而不加限定,请问用什么方法能实现这种调用方式?非常感谢。好像可以通过IMSDB继承一个类来实现DBSet的实例化,类似于EF中继承的DBContext就可以实现这个效果,但我不明白他的原理,请问具体怎么做呢?
解决方案 »
- ajax调用webservice,为何无法操作session
- 详细解释下这个正则
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 asp.net根据数据库动态生成word文档后,如果word里有有Checkbox多选框该怎么判断呀~
- Visual Web Developer 2008就是Visual Studio 2008 express?不能发布网站?
- 初学者的一个显示问题
- 返回datagrid时候,怎么取得datagrid返回前所在的页码?
- 我为何引入System.Data.ADO错误!
- 无法获得table的行数
- 请教编辑DataGrid时遇到的问题。
- 请问怎么制作Asp.net的安装程序,十万火急!万分感谢!
- ASP.NET中新建网站和新建web应用程序有什么区别?
- js问题 求教
{
public DBSet<Memo> Memos { get; set; }
public DBSet<Person> Persons { get; set; }
public DBSet<User> Users { get; set; } public IMSDB()
{
//Persons = new DBSet<Person>();
var type = this.GetType();
//反射解析 获取成员列表
System.Reflection.PropertyInfo[] properties = type.GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
if (properties.Length > 0)
{
foreach (System.Reflection.PropertyInfo item in properties)
{
Type t = item.PropertyType.GetGenericArguments()[0]; //泛型中实体的类型
object o = t.GetConstructor(new Type[0]).Invoke(new object[0]); //实例化实体类 item.SetValue(t, o, null);
}}}
imsdb.Persons = new DBSet<Person>(); //使用前要先实例化
//....
imsdb.Persons.Del(1);
public class IMSDB
{
public DBSet<Person> Persons { get; set; }
public IMSDB()
{
persons=new dbset<person>();
}
}
IMSDB imsdb = new IMSDB();
imsdb.Persons.Del(3);
using System.Data.Entity;
public class MusicStoreEntities : DbContext
{
public DbSet<Album> Albums { get; set; }
public DbSet<Genre> Genres { get; set; }
}
调用的时候只需要
MusicStoreEntities obj = new MusicStoreEntities();
obj.Albums.Create();
Albums是普通的实体类,并没有实例化,也可以调用Create();方法,具体实现原理是什么呢?
{
public DBSet<Person> Persons { get; set; }
public IMSDB()
{
persons=new dbset<person>();
}
}
IMSDB imsdb = new IMSDB();
imsdb.Persons.Del(3); 这个就可以啊
有兴趣的朋友可以加入net开源交流群,共同探讨学习69594961