关于LinQ 的Var 传值问题

我的宣言 2008-12-30 02:48:55

/// <summary>
/// 查询出所有的部门信息
/// </summary>
/// <returns></returns>
public List<Linq.Depart > SelectAllDepartInfo()
{
Linq.DepartLinqDataContext db = new CortoiKnowledge.Web.Linq.DepartLinqDataContext();
var departs = from d in db.Depart
select new
{
d.DepartName,
d.DepartState,
d.Remark
};

return departs.ToList<Linq.Depart>();//类型转换无效
//这个方法包含在WCF中 这里我要将结果返回到页面,该怎么写
}
...全文
618 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Only_You_forver 2010-05-04
  • 打赏
  • 举报
回复
如果我要在方法中传递集合的话每次都要遍历转换成需要的集合类型?
我的宣言 2008-12-30
  • 打赏
  • 举报
回复
/// <summary>
/// 查询出所有的部门信息
/// </summary>
/// <returns></returns>
public List<Linq.Depart> SelectAllDepartInfo()
{
Linq.DepartLinqDataContext db = new CortoiKnowledge.Web.Linq.DepartLinqDataContext();
var departs = from d in db.Depart
select new Linq.Depart
{
DepartId=d.DepartId,
DelState =d.DelState,
DepartCode=d.DepartCode,
DepartName= d.DepartName,
DepartState= d.DepartState,
Remark= d.Remark
};

return departs.ToList<Linq.Depart>();
}你是说这样 效果是一样的嘛
chinaicm 2008-12-30
  • 打赏
  • 举报
回复
查询出所有的数据吧,要不你影射不出来.

你的Depart里有6-7个字段呢,都需要赋值吧.
我的宣言 2008-12-30
  • 打赏
  • 举报
回复
我如果在查询的时候 直接 select d 查询出所有的数据 这样不不会有问题 倒是想查询我想要的几个字段的时候不好整
JavaNetSoft 2008-12-30
  • 打赏
  • 举报
回复
可能的原因是实体没有序列化。
---------------------------
空间集装箱 隆重上市,全国首创
www.web909.net
我的宣言 2008-12-30
  • 打赏
  • 举报
回复
主要是怎么把这个 var departs 传到我的Silverlight页面
我的宣言 2008-12-30
  • 打赏
  • 举报
回复
#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:2.0.50727.3053
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------

namespace CortoiKnowledge.Web.Linq
{
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Data;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using System.Linq.Expressions;
using System.ComponentModel;
using System;


[System.Data.Linq.Mapping.DatabaseAttribute(Name="CortoiKnowledge")]
public partial class DepartLinqDataContext : System.Data.Linq.DataContext
{

private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();

#region Extensibility Method Definitions
partial void OnCreated();
partial void InsertDepart(Depart instance);
partial void UpdateDepart(Depart instance);
partial void DeleteDepart(Depart instance);
#endregion

public DepartLinqDataContext() :
base(global::System.Configuration.ConfigurationManager.ConnectionStrings["CortoiKnowledgeConnectionString"].ConnectionString, mappingSource)
{
OnCreated();
}

public DepartLinqDataContext(string connection) :
base(connection, mappingSource)
{
OnCreated();
}

public DepartLinqDataContext(System.Data.IDbConnection connection) :
base(connection, mappingSource)
{
OnCreated();
}

public DepartLinqDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
base(connection, mappingSource)
{
OnCreated();
}

public DepartLinqDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
base(connection, mappingSource)
{
OnCreated();
}

public System.Data.Linq.Table<Depart> Depart
{
get
{
return this.GetTable<Depart>();
}
}
}

[Table(Name="dbo.Depart")]
public partial class Depart : INotifyPropertyChanging, INotifyPropertyChanged
{

private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

private short _DepartId;

private string _DepartCode;

private string _DepartName;

private System.Nullable<int> _DelState;

private System.Nullable<int> _DepartState;

private string _Remark;

#region Extensibility Method Definitions
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
partial void OnCreated();
partial void OnDepartIdChanging(short value);
partial void OnDepartIdChanged();
partial void OnDepartCodeChanging(string value);
partial void OnDepartCodeChanged();
partial void OnDepartNameChanging(string value);
partial void OnDepartNameChanged();
partial void OnDelStateChanging(System.Nullable<int> value);
partial void OnDelStateChanged();
partial void OnDepartStateChanging(System.Nullable<int> value);
partial void OnDepartStateChanged();
partial void OnRemarkChanging(string value);
partial void OnRemarkChanged();
#endregion

public Depart()
{
OnCreated();
}

[Column(Storage="_DepartId", AutoSync=AutoSync.OnInsert, DbType="SmallInt NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
public short DepartId
{
get
{
return this._DepartId;
}
set
{
if ((this._DepartId != value))
{
this.OnDepartIdChanging(value);
this.SendPropertyChanging();
this._DepartId = value;
this.SendPropertyChanged("DepartId");
this.OnDepartIdChanged();
}
}
}

[Column(Storage="_DepartCode", DbType="VarChar(25)")]
public string DepartCode
{
get
{
return this._DepartCode;
}
set
{
if ((this._DepartCode != value))
{
this.OnDepartCodeChanging(value);
this.SendPropertyChanging();
this._DepartCode = value;
this.SendPropertyChanged("DepartCode");
this.OnDepartCodeChanged();
}
}
}

[Column(Storage="_DepartName", DbType="VarChar(20)")]
public string DepartName
{
get
{
return this._DepartName;
}
set
{
if ((this._DepartName != value))
{
this.OnDepartNameChanging(value);
this.SendPropertyChanging();
this._DepartName = value;
this.SendPropertyChanged("DepartName");
this.OnDepartNameChanged();
}
}
}

[Column(Storage="_DelState", DbType="Int")]
public System.Nullable<int> DelState
{
get
{
return this._DelState;
}
set
{
if ((this._DelState != value))
{
this.OnDelStateChanging(value);
this.SendPropertyChanging();
this._DelState = value;
this.SendPropertyChanged("DelState");
this.OnDelStateChanged();
}
}
}

[Column(Storage="_DepartState", DbType="Int")]
public System.Nullable<int> DepartState
{
get
{
return this._DepartState;
}
set
{
if ((this._DepartState != value))
{
this.OnDepartStateChanging(value);
this.SendPropertyChanging();
this._DepartState = value;
this.SendPropertyChanged("DepartState");
this.OnDepartStateChanged();
}
}
}

[Column(Storage="_Remark", DbType="VarChar(200)")]
public string Remark
{
get
{
return this._Remark;
}
set
{
if ((this._Remark != value))
{
this.OnRemarkChanging(value);
this.SendPropertyChanging();
this._Remark = value;
this.SendPropertyChanged("Remark");
this.OnRemarkChanged();
}
}
}

public event PropertyChangingEventHandler PropertyChanging;

public event PropertyChangedEventHandler PropertyChanged;

protected virtual void SendPropertyChanging()
{
if ((this.PropertyChanging != null))
{
this.PropertyChanging(this, emptyChangingEventArgs);
}
}

protected virtual void SendPropertyChanged(String propertyName)
{
if ((this.PropertyChanged != null))
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}
#pragma warning restore 1591
chinaicm 2008-12-30
  • 打赏
  • 举报
回复
这里编辑的时候都不会错,运行就出错说的不能包含实体

我测试过,这么写是可以的,发一下你的Linq.Depart类.
chinaicm 2008-12-30
  • 打赏
  • 举报
回复

var departs = from d in db.Depart
select new Linq.Depart
{
DepartName = d.DepartName,
DepartState = d.DepartState,
Remark = d.Remark
};


我的代码是这个.DepartName,DepartState,Remark 这些你怎么没写呢?映射的时候,需要指定一下.
我的宣言 2008-12-30
  • 打赏
  • 举报
回复
select new Linq.Depart
{
d.DepartName,
d.DepartState,
d.Remark
}; //这里就出错了无法使用集合初始值设定项初始化类型 因为没有实现枚举类型

var departs 而且这个结果里面根本就不是实体类型 没用那些我要的参数
rascalwm 2008-12-30
  • 打赏
  • 举报
回复
你可以要把你返回的包装成一个类
然后把这个类放到泛型集合当中

public List <Test> SelectAllDepartInfo()
{
Linq.DepartLinqDataContext db = new CortoiKnowledge.Web.Linq.DepartLinqDataContext();
var departs = from d in db.Depart
select new Linq.Depart
{
d.DepartName,
d.DepartState,
d.Remark
};
Test t=new Test();//建一个这样的类 类的属性就是你查到的各项 再分别赋值

t.DepartName=departs.DepartName
.
.
.
List<Test> list=new List<Test>();
list.add(t);
return list;

}
我的宣言 2008-12-30
  • 打赏
  • 举报
回复
有人来拯救我没的
我的宣言 2008-12-30
  • 打赏
  • 举报
回复
/// <summary>
/// 查询出所有的部门信息
/// </summary>
/// <returns></returns>
public List<Linq.Depart> SelectAllDepartInfo()
{
Linq.DepartLinqDataContext db = new CortoiKnowledge.Web.Linq.DepartLinqDataContext();
var departs = from d in db.Depart
select new Linq.Depart
{
DepartName= d.DepartName,
DepartState= d.DepartState,
Remark= d.Remark
};
return departs.ToList<Linq.Depart>();//这里编辑的时候都不会错,运行就出错说的不能包含实体
}
我的宣言 2008-12-30
  • 打赏
  • 举报
回复
这个 return 的时候 类型该怎么转换 我这样写一直都报错 return departs.ToList <Linq.Depart>();//类型转换无效
chinaicm 2008-12-30
  • 打赏
  • 举报
回复

var departs = from d in db.Depart
select new Linq.Depart
{
DepartName = d.DepartName,
DepartState = d.DepartState,
Remark = d.Remark
};


这么改一下,应该可以了.

62,269

社区成员

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

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

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

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