使用Winforms和EF 6 Code First

时间:2017-09-08 08:38:06

标签: c# winforms entity-framework ef-code-first filtering

我有两个POCO EF课程:

public class Message
{
    public Guid Id { get; set; }
    public String Text { get; set; }
    public bool IsPrivate { get; set; }
    public virtual User User { get; set; }
}

public class User
{
    public Guid Id { get; set; }
    public String Name { get; set; }
    public int Age { get; set; }
}

Accoridng to Entity Framework Databinding with WinForms MSDN tutrotial我通过BindingList将DataGridView绑定到Messages上,如下所示:

private void Form1_Load(object sender, EventArgs e)
{
      MyDbContext db = new MyDbContext();
      db.Messages.Load();
      this.messagesBindingSource.DataSource = db.Messages.Local.ToBindingList();
}

在我的表单上,我有一个用于按用户名过滤的ComboBox和一个用于按消息文本进行文件传输的TextBox: enter image description here

要按消息文本过滤,请使用以下代码(来自this SO answer):

private void textBox1_TextChanged(object sender, EventArgs e) 
{
     //messageDataGridView.dataSource -> messagesBindingSource
     (messageDataGridView.dataSource as BindingSource).Filter = "Text LIKE '%" + textBox1.Text.Trim() + "%'";
}

但该代码无效 - 我总是看到所有消息。

我不知道如何按用户名过滤(因为它是User实体的属性,我的DataGridView中没有这个属性)。

0 个答案:

没有答案