zoukankan      html  css  js  c++  java
  • Entityframework实体中的导航属性,通过GetCustomAttributes无法判断特性是否存在

    从数据库中读取的实体,有导航属性的话,该属性通过GetCustomAttributes无法判断特性是否存在(如:ForeignKey)

    获取到的GetCustomAttributes.Length为零

    如果要判断,请用Attribute.IsDefine

    原因可能是:

    EF的导航属性延时加载(LazyLoad)以后,属性的类型被EF重写了,类型从:ActivityIntroduction变为了DynamicProxies

     名称类型
    DeclaringType {Name = "ActivityIntroduction_B088226646DE0E9842FB0E0C98C7DB6E2AE98BCC9D08ECE04124FD7E9322897C" FullName = "System.Data.Entity.DynamicProxies.ActivityIntroduction_B088226646DE0E9842FB0E0C98C7DB6E2AE98BCC9D08ECE04124FD7E9322897C"} System.Type {System.RuntimeType}

    可以通过BaseType到基类

    var type = entity.GetType();
    //如果是ef的类型则取它的基类
    type = type.Namespace == "System.Data.Entity.DynamicProxies" ? type.BaseType: type;
  • 相关阅读:
    新單詞
    custom preview link
    注冊碼
    准备用VB.Net 写一个律师管理的系统
    Windows服務
    下一步
    失败
    如何在篩選聯絡人時控制只能篩選上層客戶的聯絡人.
    如何取Lookup欄位的值
    Dynamic Picklist Sample
  • 原文地址:https://www.cnblogs.com/yeagen/p/12713435.html
Copyright © 2011-2022 走看看