LINQ to Entities - 如何检索数据并将其用作整个项目中的变量

时间:2013-04-12 10:49:34

标签: c# linq entity-framework

我有1个WinForm和2个表:

  • Form1包含TextBox1

  • 员工包含ID,LastName,FirstName,BirthDate。

  • 任务包含ID,TaskName

我需要在TextBox1中输入LastName和FirtName来检索相关的“TaskName”(如果存在), 然后使检索到的数据可以从项目中的任何位置使用

我需要知道在哪里放置TaskName变量? 以及如何修改下一个代码以达到这个目的?

using (LINQtoEntitiesEntities MyEntities = new LINQtoEntitiesEntities())
{
ObjectQuery<Employee> Employee = MyEntities.Employee;
var query = (from p in Employee
where p.FirstName == TextBox1.Text.Trim()
select p.LasttName, p.FirstName);
}

1 个答案:

答案 0 :(得分:0)

如果正在输入LastName和FirstName(按此顺序)到TextBox1,那么假设它们用空格或空格分隔,您可以按如下方式将它们拆分:

string[] items = TextBox1.Text.Trim().Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries);
string lastName = items[0];
string firstName = items[1];

Split方法的第二个参数处理可能有多个空格分隔姓氏和名字。

如果ID列用于链接Employee和Tasks表,那么您应该能够检索相关的TaskName并将其放在全局变量中,如下所示:

//如果您还没有一个

,则创建一个包含全局变量的类
static class Global
{
    public static string Task {get; set;}
}

//在某些其他类

中的某个方法中

//插入上面的代码以获取姓氏和名字

using (LINQtoEntitiesEntities MyEntities = new LINQtoEntitiesEntities())
{
   ObjectQuery<Employee> Employee = MyEntities.Employee;
   ObjectQuery<Tasks> Tasks = MyEntities.Tasks;
   Global.Task = (from e in Employee where e.LastName == lastName && e.FirstName == firstName join t in Tasks on e.ID equals t.ID select t.TaskName).FirstOrDefault();
}

//从其他地方检索全局变量:

if (Global.Task != null)
{
   // do something with Global.Task
}