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时避免循环引用