Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# linq-lambda表达;获取EF对象并删除选定的属性_C#_Asp.net_Entity Framework - Fatal编程技术网

C# linq-lambda表达;获取EF对象并删除选定的属性

C# linq-lambda表达;获取EF对象并删除选定的属性,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我有一个对象的单个实例: AS_SYSTEM system = ctx.AS_SYSTEM.Where(s => s.SYSTEM_ID == query).First(); 我想从中删除一些属性。以“引用”结尾的所有属性。差不多 system.GetType().GetProperties().Name.EndsWith("Reference") 我想删除链接到其他表的所有ef属性。要使用反射将以“Reference”结尾的所有属性(值)置零,请执行以下操作: var propert

我有一个对象的单个实例:

AS_SYSTEM system = ctx.AS_SYSTEM.Where(s => s.SYSTEM_ID == query).First();
我想从中删除一些属性。以“引用”结尾的所有属性。差不多

system.GetType().GetProperties().Name.EndsWith("Reference")
我想删除链接到其他表的所有ef属性。

要使用反射将以“Reference”结尾的所有属性(值)置零,请执行以下操作:

var properties = system.GetType().GetProperties().Where(x => x.Name.EndsWith("Reference"));

foreach (var p in properties)
{
    p.SetValue(system, null, null); 
}   

虽然我不确定您是否真的需要在这里使用反射,但这就是它的工作方式。

您的意思是希望属性为null,还是希望完全删除属性?属性属于该类型并在实例上实例化,在运行时删除它们不是一项简单的任务。@SeanThoman我认为null就足够了。我只想在使用JavaScriptSerializer将对象序列化为json时避免循环引用