在Linq-to-SQL中,可以使用ToList
方法从实体对象获取所有数据:
db.users.Tolist();
也可以通过select
方法获取多列:
var users= db.users.Select(
t => new
{
t.c1,
t.c2,
t.c3,
.
.
});
但是我希望得到所有列没有这样的特定列:
db.users.exclude(t.c2).tolist();
有没有办法解决这个问题?
答案 0 :(得分:2)
要做动态crud操作,但[jqgrid]不能使用导航属性和延迟加载,我想避免在后端Cod中加载导航属性
在查询之前添加db.Configuration.LazyLoadingEnabled = false;
。
db.Configuration.LazyLoadingEnabled = false;
db.users.Tolist();
如果有 要加载的集合,则必须使用Include
db.Configuration.LazyLoadingEnabled = false;
db.users.Incude(x => x.Roles).Tolist();
如果您使用json.net(标准包含库)返回,请将JsonIgnore添加到您不希望序列化到客户端的属性中。例如:
public class User {
[JsonIgnore]
public ICollection UsersRoles {get;set;}
}
答案 1 :(得分:0)
你为什么要向后走?
只需选择您想要的列,不要选择您不想要的列
而不是全部选择它们而不包括你不想要的那样:
var users= db.users.Select(
t => new
{
t.c1,
t.c2,
t.c3,
.
.
.
});
改为:
var users= from u in db.users
select u.c1, u.c3, etc... ; //Dont select what you don't want
或者这个也可以:
var users = from u in db.users
select new
{
c1 = u.c1,
c3 = u.c3
}.ToList();