0
有DB上下文和定義的實體類,如下所示:我如何獲得實體類的實體框架代碼優先的屬性在運行時
public class DBContext : DbContext
{
public DBContext()
: base("name=DbConnectionString")
{ }
public virtual DbSet<Foo> Foos { get; set; }
}
public class Foo
{
[Key]
public long FooID { get; set; }
public string Bar1 { get; set; }
public string Bar2 { get; set; }
}
我想在運行時得到類Foo的屬性。我試過反思:
DBContext db = new DBContext(dbConnString);
db.Database.CreateIfNotExists();
List<PropertyInfo> properties = db.Foos.GetType().GetProperties();
此代碼不能編譯。我如何獲得Foo類的屬性?謝謝!
哪個編譯錯誤你會得到? – ThiagoPXP
您在這裏發佈的代碼不應該有任何錯誤,必須有其他代碼。它也應該是'typeof(Foo)'而不是'db.Foos.GetType()'。啊,我猜這個例外是'NullReferenceException'? 'Foos'沒有在你的上下文的構造函數中初始化。但是,使用'typeof(Foo)' – Hopeless
db.Foos.GetType()時,無關緊要,因爲您沒有指定程序集,所以它將返回DbSet或(更可能)爲null。如建議,使用typeof()而不是GetType()。 –
DevilSuichiro