日期:2014-05-20  浏览次数:20632 次

LINQ 的问题
有几张表,主键都是NTK_No
现在要删除的时候,将表中的 del=1,要写成公用的方法,应该怎么写。
XXXXXXXXXXXXXX a 应该怎么替换啊

C# code

    public static void Delete(string tablename,string ntkno,XXXXXXXXXXXXXX a)
    {
        //DataClassesDataContext db = new DataClassesDataContext();
        //var prdt = db.products.SingleOrDefault(x => x.NTK_No == ntkno);
        
        var prdt = a.SingleOrDefault(x => x.NTK_No == ntkno);


        prdt.del=1;

        db.SubmitChanges();
    }




------解决方案--------------------
a 是什么来的。

习惯会这样做(伪码):
public static void Delete<T>(T type, string ntkno)
{
db.GetTable<T>().SingleOrDefault(x=>x.NTK_No==ntkno).del = 1;
db.SubmitChange();
}
------解决方案--------------------
可以参考一下ling 分页的代码或许有点用
代码如下:
public IQueryable<T> getPageAfterResult()
{
IQueryable<T> source = tableSource;
int TotalCount = source.Count();
int TotalPages = getPageNum();
if (TotalPages == 0)
{
PageIndex = 0;
source = source.Take(PageSize);
}
else
{
if (PageIndex == 1)
{
source = source.Take(PageSize);
}
else
{
if (PageIndex < 1)
{
PageIndex = 1;
source = source.Take(PageSize);
}
else
{
if (PageIndex >= TotalPages)
{
PageIndex = TotalPages;
source = source.Skip((PageIndex - 1) * PageSize).Take(PageSize);
}
else
{
source = source.Skip((PageIndex - 1) * PageSize).Take(PageSize);
}
}
}
}
return source;
}