如何避免在 linq 中加载特定列
How to avoid loading a specific column in linq
在 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();
有什么办法可以解决这个问题吗?
你为什么要倒着走?
只需 select 您想要的列,不要 select 您不想要的列
而不是 select 全部处理并排除你不想要的,就像你在这里做的那样:
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();
To Do dynamically crud operations , But [jqgrid] Doesn't Work With navigation Property And Lazy loading, I want to avoid loading navigation Property in backend 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;}
}
在 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();
有什么办法可以解决这个问题吗?
你为什么要倒着走?
只需 select 您想要的列,不要 select 您不想要的列
而不是 select 全部处理并排除你不想要的,就像你在这里做的那样:
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();
To Do dynamically crud operations , But [jqgrid] Doesn't Work With navigation Property And Lazy loading, I want to avoid loading navigation Property in backend 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;}
}