请教一个linq问题

BATTLERxANGE 2010-11-10 10:04:20
比如我在model层定义一个User类,其中定义了一个属性
public int Id
{
get { return _id; }
}
还定义了一个方法
public void SetID(int id)
{
_id=id;
}

那么如何在查询的时候将对象转换成User类并且调用方法SetID呢?
using (UserDataContext userDataContext = new UserDataContext ())
{
var user= from u in userDataContext.users
select new User().SetPowers(null);//这个地方怎么写!?
}
...全文
94 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
danjiewu 2010-11-10
  • 打赏
  • 举报
回复
怎么一会是SetID一会是SetPowers
lz把问题说清楚些
flyerwing 2010-11-10
  • 打赏
  • 举报
回复
private in _id;
public int Id
{
get;
set;
}
写成这样好点吧;
using (UserDataContext userDataContext = new UserDataContext ())
{
var user= from u in userDataContext.users
select new User{Id=u.iD};
user.ToList.ForEach(u=>u.SetID(u.Id));
}

BATTLERxANGE 2010-11-10
  • 打赏
  • 举报
回复
只能分成两部分了,但这样会不会影响效率?

using (UserDataContext userDataContext = new UserDataContext ())
{
var user= from u in userDataContext.users
select new User(Id=u.iD)
{
Powers=(from x in xxx select x).ToList();
};
}

请问这样写效率会不会比前者更高?
claymore1114 2010-11-10
  • 打赏
  • 举报
回复

userDataContext.users.ToList().ForEach(s => s.SetID(s.Id));
q107770540 2010-11-10
  • 打赏
  • 举报
回复
一次性将问题说清楚
BATTLERxANGE 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 q107770540 的回复:]

C# code

using (UserDataContext userDataContext = new UserDataContext ())
{
var user= (from u in userDataContext.users
select new User{Id=u.iD}).FirstOrDefault();
if(user !=null)
……
[/Quote]

谢谢,但并不是我想要的,因为SetPowers(from x in xxx select x)还需要在内部查询一次
q107770540 2010-11-10
  • 打赏
  • 举报
回复

using (UserDataContext userDataContext = new UserDataContext ())
{
var user= from u in userDataContext.users
select new User{Id=u.iD};
user.ToList.ForEach(u=>u.SetID(u.Id));
}
BATTLERxANGE 2010-11-10
  • 打赏
  • 举报
回复
但问题是我并不需要返回任何对象
只是通过调用SetPowers(obj)来填充User()内部的字段
囧啊,设置成可读写属性不就好了嘛搞的这么麻烦,不知道老大怎么想的
q107770540 2010-11-10
  • 打赏
  • 举报
回复

using (UserDataContext userDataContext = new UserDataContext ())
{
var user= (from u in userDataContext.users
select new User{Id=u.iD}).FirstOrDefault();
if(user !=null)
{
user.SetID(user.Id);
}
}
claymore1114 2010-11-10
  • 打赏
  • 举报
回复
select 要返回值的,
你的 SetID(int id) 加个返回值,不要void
BATTLERxANGE 2010-11-10
  • 打赏
  • 举报
回复
真囧了,老大说就是要这样写,并且属性都必须为只读,哎,真不方便

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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