我目前正在开发API,而我正在使用的库需要初始化其大部分组件。它通过使用.include进行初始化。
示例通话为:context.Load(context.Projects, proj => proj.Include(p => p.Name))
尽可能地,我不想包含很多字段,因为执行查询需要更长的时间。所以我的一个想法是使用GetType().GetProperty()
,看起来像这样:
context.Load(context.Projects, proj => proj.Include(
p => p.Name,
p => p.GetType().GetProperty(customFieldName)
));
我的假设是,当我这样做时,我将获得属性,但它似乎创建了一个不同的对象。我有什么方法可以做到这一点吗?
修改:我们的想法是customFieldName
由用户提供,例如,用户提供了Id
我希望在p.Id
中获得等效性<script type="text/javascript" language="javascript" >
$(document).ready(function(){
function fetch_product_data()
{
$.ajax({
url:"fetch.php",
method:"POST",
dataType:"json",
success:function(data)
{
for(var count=0; count<data.length; count++)
{
var html_data = '<tr><td>'+data[count].id+'</td>';
html_data += '<td data-name="item_code" class="item_code" data-
type="select" data-pk="'+data[count].id+'">'+data[count].item_code+'</td>
</tr>';
$('#product_data').append(html_data);
}
}
})
}
$('#product_data').editable({
container: 'body',
selector: 'td.item_code',
url: "update.php",
title: 'Item_code',
type: "POST",
dataType: 'json',
source: [{value: "Code1", text: "Code1"}, {value: "Code2", text: "Code2"}],
validate: function(value){
if($.trim(value) == '')
{
return 'This field is required';
}
}
});
</script>
包括声明。所以我可以将该对象的值返回给用户
答案 0 :(得分:1)
实体框架还允许您根据名称将属性包含为字符串。通过这种方式,您可以决定在运行时包含的属性。所以你的代码现在应该是这样的。
context.Load(context.Projects, proj => proj.Include("Name", customFieldName));
如果您正在查看嵌套属性(例如:Name
是一个具有属性FirstName
和LastName
)的类,您可以使用点来指定要包含的确切属性( "Name.FirstName"
)。