![](/img/trans.png)
[英]Use Reflection to get methods excluding local functions in C# 7.0?
[英]How to use Local with reflection in c#?
也許這很簡單,但是我找不到答案。 我可以使用反射來編寫以下代碼嗎?
AdminEntities context= new AdminEntities();
datagridview1.DataSource = context.TABLENAME.Local.ToBindingList();
我嘗試了以下方法:
BindingSource rtBindingSource = new BindingSource();
var TableName = cboSelectTable.Text.ToString();
AdminEntities context = new AdminEntities();
var rawData = context.GetType().GetProperty(TableName).GetValue(context, null);
var truncatedData = ((IQueryable<object>)rawData).Local.ToBindingList();
var binding = new BindingList<object>(truncatedData);
rtBindingSource.DataSource = new BindingSource { DataSource = binding };
datagridview1.DataSource = rtBindingSource;
但它給出了錯誤:“ System.Linq.IQueryable”不包含“ Local”的定義,並且找不到擴展方法“ Local”接受類型為“ System.Linq.IQueryable”的第一個參數
我從來沒有對entity-framework
做過很多事情,但是明顯的問題似乎是您試圖在此處投射到錯誤的對象:
var truncatedData = ((IQueryable<object>)rawData).Local.ToBindingList();
我相信rawData
是一個DbSet
,它沒有實現IQueryable<T>
接口。 請注意,它確實實現了IQueryable
但這不是通用版本,也無論如何都無法從DbSet
獲取Local
屬性。 將上面的行更改為以下內容可能會有所幫助:
var truncatedData = ((DbSet)rawData).Local.ToBindingList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.