You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用EntityFramework拉取数据绑定DataGridView时出现多余列如何解决

问题原因
  • Logs实体类错误继承了TOKMANContext(DbContext子类)。DataGridView绑定数据源时默认会自动生成所有公共属性对应的列,而DbContext本身包含大量内置公共属性(Configuration、Database、所有已定义的DbSet属性等),这些属性都会被识别为待绑定字段,最终生成多余列。
解决方案

核心修正

去掉Logs类对TOKMANContext的继承,实体类无需继承任何DbContext相关类,修正后代码如下:

public class Logs
{
    [Key]
    public int id { get; set; }
    public int typeid { get; set; }
    public int userid { get; set; }
    public DateTime time { get; set; }
    public string description { get; set; }
}

修改后重新编译运行即可解决多余列问题。

可选补充配置

如果需要更精确控制列的显示,可按需选择以下方案:

  • 关闭自动生成列,手动配置显示列:绑定数据前添加代码dgvLogs.AutoGenerateColumns = false;,手动添加需要展示的列,并将每列的DataPropertyName属性设置为对应Logs实体的属性名即可。
  • 隐藏指定属性:如果实体中有需要保留但无需在控件中展示的属性,在对应属性上添加[Browsable(false)]特性即可,控件绑定时会自动跳过该属性。

内容的提问来源于stack exchange,提问作者Adem ÖZİPEK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:57:05