写一个通用的Linq to sql 增删改

sapronlee 2010-02-06 03:45:46

public interface IRepository<T> where T : Entity
{
T Load(int Id);

IList<T> Load();

void Save(T entity);

void Delete(T entity);
}

public class SqlToLinqRepository<T> : IRepository<T> where T : Entity
{
public static DataBaseDataContext context;
public static DataBaseDataContext Context
{
get
{
if (context == null)
return context = new DataBaseDataContext();
return context;
}
}

#region IRepository<T> 成员

public T Load(int Id)
{
return null;
}

public IList<T> Load()
{
throw new NotImplementedException();
}

public void Save(T entity)
{
throw new NotImplementedException();
}

public void Delete(T entity)
{
throw new NotImplementedException();
}

#endregion
}

T是我自己定义的实体类,因为每个实体类都有增删改相同的方法,所以我想写一个通用的类,但是因为这里的T不是DataContext里的实体,所以到这里我不知道怎么写了,请高手给一个思路!

比如我不用linq to sql 了,只要实现IRepository<T>接口就可以换一种数据库,如ACCESS!

...全文
156 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yijianxiangde100 2010-02-24
  • 打赏
  • 举报
回复
学习了,顶楼主。。。。。。。。。。。。。。。。。。。。。。。。。。
itliyi 2010-02-06
  • 打赏
  • 举报
回复
学习
microsoftAnson 2010-02-06
  • 打赏
  • 举报
回复
//这个是DataContext
VoteDataContext vd = new VoteDataContext();
//增加
public void insert(int Iid, int userid)
{

vote_c ct = new vote_c();
ct.Iid = Iid;
ct.userid = userid;
ct.flag = 0;
vd.vote_c.InsertOnSubmit(ct);
vd.SubmitChanges();

}
//修改和删除类似

//查询显示

public object List()
{
var cc = from c in vd.vote
where c.flag == 0
select new { c.vid, c.infor };
return cc;
}
dongfang_ygy 2010-02-06
  • 打赏
  • 举报
回复
很好哦!
sapronlee 2010-02-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 microsoftanson 的回复:]
//这个是DataContext
VoteDataContext vd = new VoteDataContext();
//增加
  public void insert(int Iid, int userid)
        {

            vote_c ct = new vote_c();
            ct.Iid = Iid;
            ct.userid = userid;
            ct.flag = 0;
            vd.vote_c.InsertOnSubmit(ct);
            vd.SubmitChanges();

        }
//修改和删除类似

//查询显示

    public object List()
        {
            var cc = from c in vd.vote
                    where c.flag == 0
                    select new { c.vid, c.infor };
            return cc;
        }
[/Quote]

2楼似乎没有看清楚我的问题,你上面的示例我知道怎么写,我要的不是返回DataContext里的实体,而是我自己定义的实体,所以你给出答案对我没有用啊!

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧