【发布时间】:2012-05-12 05:22:58
【问题描述】:
我是 LINQ 的新手,正在尝试编写一个查询,该查询根据运行时输入的变量选择要查询的表。基本思想是我为 Persons 表中的每个人都有一个 Contacts 表。我可以从实体中获取我想要的所有数据,但是在查询时找不到另一个表。这是代码;
public void GetFriendsList(string username, Person[] people)
{
string table = "FL." + username;
DataTable friends = new DataTable(table);
var filePaths =
from row in friends.AsEnumerable()
select row.Field<string>("Friend's Name");
var friendsArray = filePaths.ToArray();
for (int i = 0; i < people.Length; i++)
{
people[i] = GetPerson(friendsArray[i]);
}
}
我也尝试过在顶部使用类似下面的内容,但 VS 无法识别 FillDataSet 函数。
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);
DataTable products = ds.Tables[table];
感谢您的任何建议,对于含糊之处深表歉意。我假设我缺少连接字符串或其他东西。我已经完成了这个并且代码显然没有连接到表格。
【问题讨论】:
-
您似乎没有使用 Linq2Sql 或实体框架或任何实际连接到数据库的东西? FillDataSet 是 DataAdapter 类(SqlDataAdapter、OdbcDataAdapter 等)之一的实例成员。见msdn.microsoft.com/en-us/library/ms171920(v=vs.80).aspx
-
@Euphoric “我为 Persons 表中的每个人都有一个 Contacts 表” - 他说的很好,他的观点是面向对象的。所以存在阻抗不匹配,他认为是在对象方面,但他使用的组件(ADO.NET)只支持关系看待事物,实际上几乎是原始的,几乎是扁平的。他应该使用 ORM,这样他就可以在对象方面工作
-
@MichaelBuen 这并不能成为他不具备 SQL 工作原理的基本知识的借口。
-
@Euphoric 抱歉我缺乏数据库知识。我所读到的只是基本概念和查询。正如 MB 所说,我是一个面向对象的思想家,只是在黑暗中蹒跚而行,直到我发现自己是一个工作数据库。