选择要在EF中的文本框中显示的任何字符串

时间:2013-10-30 17:15:16

标签: wpf entity-framework

使用Entity框架如何选择要在文本框中显示的任何字符串。过去使用myReader我会做以下事情:

while (myReader.Read())

{
 string sName = myReader.GetString(1);
 txtName.Text = sName;
}

1 个答案:

答案 0 :(得分:0)

您必须加载所需的实体(= table),然后将实体的属性分配给文本框。

类似的东西:

using (var myContext = new EntityContext())
{
myContext.TableName.Load(); //this will load all rows from the table

var list = myContext.TableName.Local; //.Local is a list of the entities which gets populated when you cann the Load() method

//now you can either enumarte your list like so
foreach (TableName item in list)
{
string sName = item.PropertyName; //PropertyName is the property you want to display, this would be like using not an index in myReader.GetString(1) but the columnname myReader.GetString("ColumnName")
txtName.Text = sName;
}

//or if you want to get a certain item out of your list you can use LINQ/MethodChains
//MethodChain
var item = list.First(x => x.PropertyName == "HelloWorld!");
string sName = item.PropertyName;
txtName.Text = sName;

//LINQ
var item = (from x in list
            where x.PropertyName == "HelloWorld!"
            select x).First();

string sName = item.PropertyName;
txtName.Text = sName;

//the methodchain and linq is a "new" technology that simplifies this code (which does the same)
TableName item = null;
foreach (TableName tempItem in list)
{
    if (tempItem.PropertyName == "HelloWorld!")
    {
        item = tempItem;
        break;
    }
}

string sName = item.PropertyName;
txtName.Text = sName;

}