我有两个POCO EF课程:
public class Message
{
public Guid Id { get; set; }
public String Text { get; set; }
public bool IsPrivate { get; set; }
UPDATE2: public Giud UserId { 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; }
UPDATE2: public Giud UserRoleId { get; set; }
public virtual UserRole UserRole { get; set; }
public virtual ICollection<Message> Messages { get; set; }
}
public class UserRole
{
public Guid Id { get; set; }
public String Name { get; set; }
public virtual ICollection<User> Users { get; set; }
}
Accoridng Entity Framework Databinding with WinForms MSDN tutrotial: 的更新:
是否有一种“开箱即用”的方式将相关实体的属性显示到我的DataGridView中? 或者唯一的方法是创建从我需要的EF实体属性投影的自定义DTO对象?
UPDATE2:我已阅读Show Properties of a Navigation Property in DataGridView (Second Level Properties)问题 Reza Aghaei 建议。并尝试实施选项1 - 使用DataGridViewComboBoxColumn ,但失败了。这就是我所做的:
将它们的ValueMember设置为您为product设置的相同值成员 id列,它是产品表的关键列。(ProductId)
将每个人的DisplayMember设置为您要显示的列 例如,将其中一个设置为Name。一个是Price,一个是Size,.... 这样您就可以显示相关的实体字段。
我的错误是什么?
答案 0 :(得分:0)
首先尝试从db加载数据,然后将其绑定到控件
var _messages = db.Messages.ToList(); this.messageBindingSource.DataSource = _messages;