参考示例如下
1. Updateusing (var context = new TestEntities())
{
var user = context.User.Where(u => u.Name == "user1").FirstOrDefault();
user.Age += 2; context.SaveChanges();
}
2. Deleteusing (var context = new TestEntities())
{
var user = context.User.Where(u => u.Name == "user2").FirstOrDefault();
context.DeleteObject(user);
context.SaveChanges();
}
如何自定义一个方法,传入需要搞作的 表 和条件,进行增删改
public bool DelOperation(Object obj)
{
try
{
using (var context = new TestEntities())
{
context.DeleteObject(obj);
context.SaveChanges();
return true;
}
catch
{
return fales;
}}
//想这样调用 DelOperation("user",cWhere)
Dictionary<string, string> cWhere=
new Dictionary<string, string>();
cWhere.Add("name","user1");
cWhere.Add(....);public bool DelOperation(string tableName,Dictionary<string, string> cWhere)
{
.....这里怎么写
}
还是有其他方法呢
1. Updateusing (var context = new TestEntities())
{
var user = context.User.Where(u => u.Name == "user1").FirstOrDefault();
user.Age += 2; context.SaveChanges();
}
2. Deleteusing (var context = new TestEntities())
{
var user = context.User.Where(u => u.Name == "user2").FirstOrDefault();
context.DeleteObject(user);
context.SaveChanges();
}
如何自定义一个方法,传入需要搞作的 表 和条件,进行增删改
public bool DelOperation(Object obj)
{
try
{
using (var context = new TestEntities())
{
context.DeleteObject(obj);
context.SaveChanges();
return true;
}
catch
{
return fales;
}}
//想这样调用 DelOperation("user",cWhere)
Dictionary<string, string> cWhere=
new Dictionary<string, string>();
cWhere.Add("name","user1");
cWhere.Add(....);public bool DelOperation(string tableName,Dictionary<string, string> cWhere)
{
.....这里怎么写
}
还是有其他方法呢
{.....这里怎么写 根据tableName 与cWhere产生实体 }
{
new KeyValuePair<string, object>("Id", 1),
};
EntityKey ek = new EntityKey("XXXEntities.Jobs", eks);
var obj = ctx.GetObjectByKey(ek);
...然后你可以用 ctx.DeleteObject(obj);
用反射吧,传一个object 然后
obj.getType(); 获取当前实例化的类型
obj.getType().getProperties() 获取所有属性返回 PropertyInfo
PropertyInfo p = obj.GetType().GetProperty(fieldName); //获取指定参数的属性
{
new KeyValuePair<string, object>("姓","张"),
new KeyValuePair<string, object>("民族", "汉"),};EntityKey ek = new EntityKey("XXXEntities.Jobs", eks);
var obj = ctx.GetObjectByKey(ek);这样还能用吗
那如果要根据传入的条件返回记录应该怎么写
GetObjectByKey只是返回单一的对像的吧。public bool SELOperation(string tableName,Dictionary<string, string> cWhere)
{
// var query = context.user.where(u=>u.姓=='张' && u.民族=="汉" )
.....这里怎么写。
return query
}
Where("it.Name = @name", new ObjectParameter("name", "user1")).
Select("it.Name, it.Age").
Top("@num", new ObjectParameter("num", 2)); foreach (var item in users)
{
Console.WriteLine(item["name"]);
}如果可以将context.User替换成我传入的表名。
将Where("it.Name = @name", new ObjectParameter("name", "user1"))
替换在我传入的cwhere的话,应该可以达到目的。那要如何可以做到替换呢。
因为你说TableName 也是动态的,所以我没写这个方法。
如果你的方法能定义成 SELOperation<T> 那就简单不少了