100分求高手幫忙看下這個EF問題

kies123 2013-06-05 09:02:30

public class SJResourceReqMAS
{

[Key]
public int rr_Id { get; set; }
[Display(Name = "申請人")]
public string rr_requsr { get; set; }

[Display(Name = "電話")]
public string rr_reqext { get; set; }

[Display(Name = "申請日期")]
public System.DateTime? rr_date { get; set; }
public virtual SJResourceReqDtl SJResourceReqDtl { get; set; }
public partial class SJResourceReqDtl
{
[ForeignKey("SJResourceReqMAS")]
[Key, Column("rd_Id", Order = 1)]
public int rd_Id { get; set; }




[ForeignKey("SJResourceCatMAS")]
[Key, Column("rc_Id", Order = 2)]
public int rc_Id { get; set; }

public Nullable<short> rd_qty { get; set; }
public string rd_desc { get; set; }


public virtual SJResourceCatMAS SJResourceCatMAS { get; set; }
public virtual List<SJResourceReqMAS> SJResourceReqMAS { get; set; }
}

報錯:The foreign key component 'rd_Id' is not a declared property on type 'SJResourceReqMAS'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property. 、

外国关键组件的rd id”不是一个声明的属性类型的SJResourceReqMAS’。确认它没有被明确地排除在模型,它是一个有效的原始属性。
...全文
128 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
V0lD 2013-06-06
  • 打赏
  • 举报
回复
引用 5 楼 u010950894 的回复:
[quote=引用 4 楼 doncle000 的回复:] 这ef代码看起来是自己写的,不能用向导方式添加么?用向导从没遇到这问题
向导方式? 怎麼用的?[/quote]添加=>新建项=>数据=>ADO.NET实体数据模型(默认文件扩展名是.edmx)
曹阳888 2013-06-05
  • 打赏
  • 举报
回复

public class R_AccountPower
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public R_AccountPower()
        {

        }

        /// <summary>
        /// 权限ID
        /// </summary>
        [Key]
        public int ID { get; set; }

        /// <summary>
        /// 角色ID
        /// </summary>
        public int roleID { get; set; }//外键
        public Role Role { get; set; }
        /// <summary>
        /// 模块ID
        /// </summary>
        public int modulesID { get; set; }//外键

        public Modules Modules { get; set; }

        /// <summary>
        /// 页面元素ID
        /// </summary>
        public string elementID { get; set; }//外键

        public PageElement PageElement { get; set; }

        /// <summary>
        /// 将此实例的值转换为 System.String
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return Common.TConvert.ObjectToString(this);
        }
    }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<R_AccountPower>().HasRequired(r => r.Modules).WithMany(m => m.R_AccountPower).HasForeignKey(r => r.modulesID).WillCascadeOnDelete(false); ;
            modelBuilder.Entity<R_AccountPower>().HasRequired(r => r.PageElement);
            modelBuilder.Entity<R_AccountPower>().HasRequired(r => r.Role);
        }
kies123 2013-06-05
  • 打赏
  • 举报
回复
引用 9 楼 liuchaolin 的回复:
报得错和上次一样?
是得哦
md5e 2013-06-05
  • 打赏
  • 举报
回复
报得错和上次一样?
kies123 2013-06-05
  • 打赏
  • 举报
回复
引用 6 楼 liuchaolin 的回复:
[ForeignKey("SJResourceReqMAS")] [Key, Column("rr_Id", Order = 1)] public int rr_Id { get; set; } 外键应该要和主键保存一致吧,你上边定义的是rr_id,你这里也需要用rr_id
[ForeignKey("SJResourceReqMAS")] 這段代碼已經指定了EF會自動匹配的,我也按你那方法改成rr_Id還是報錯的
md5e 2013-06-05
  • 打赏
  • 举报
回复
[ForeignKey("SJResourceReqMAS")] [Key, Column("rr_Id", Order = 1)] public int rr_Id { get; set; } 外键应该要和主键保存一致吧,你上边定义的是rr_id,你这里也需要用rr_id
kies123 2013-06-05
  • 打赏
  • 举报
回复
引用 4 楼 doncle000 的回复:
这ef代码看起来是自己写的,不能用向导方式添加么?用向导从没遇到这问题
向导方式? 怎麼用的?
V0lD 2013-06-05
  • 打赏
  • 举报
回复
这ef代码看起来是自己写的,不能用向导方式添加么?用向导从没遇到这问题
kies123 2013-06-05
  • 打赏
  • 举报
回复
引用 1 楼 liuchaolin 的回复:
[ForeignKey("SJResourceReqMAS")] [Key, Column("rr_Id", Order = 1)] public int rd_Id { get; set; } 这个的出错信息应该是外键rd_id不是属于类型为SJResourceReqMAS的属性
就是不知道爲什麽會報錯啊,rd_Id是SJResourceReqMAS rr_Id的外鍵啊
yusongkun 2013-06-05
  • 打赏
  • 举报
回复
研究了N年的ORM,最后还是回归ADO.NET的给你一个建议,放弃任何ORM。
md5e 2013-06-05
  • 打赏
  • 举报
回复
[ForeignKey("SJResourceReqMAS")] [Key, Column("rr_Id", Order = 1)] public int rd_Id { get; set; } 这个的出错信息应该是外键rd_id不是属于类型为SJResourceReqMAS的属性

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧