我正在使用json .net来恢复通用列表,但是当我只想要我的字段名称和值时,它会在我的json中恢复额外的数据。我尝试过使用下面的JSONConvert简单语法,但我想我将不得不根据myList返回的值创建一个新的结果var。
public string GetListByUserId(int userId)
{
List<curoList> myList = _db.GetAllListsByUserId(userId);
var json = JsonConvert.SerializeObject(myList);
return json;
}
在数据中它包括像EntitySetName这样的东西,当我只想让字段像fieldname:fieldvalue,这导致我用json.net的第二个问题如何将数据转换为List对象
修改
我忘了为你们提供测试数据。
[{&#34; $ ID&#34;:&#34; 1&#34;&#34; ID&#34;:1,&#34;的firstName&#34;:&#34;大卫&# 34;,&#34; lastName的&#34;:&#34;巴克利&#34;&#34;地址1&#34;:&#34;&#34;&#34;地址2&#34;:空, &#34;县&#34;:空,&#34;邮编&#34;:空,&#34; EMAILADDRESS&#34;:空,&#34; aboutme&#34;:空,&#34;有源&# 34;:真,&#34;的EntityKey&#34; {&#34; $ ID&#34;:&#34; 2&#34;&#34; EntitySetName&#34;:&#34;人&#34 ;,&#34; EntityContainerName&#34;:&#34; curoEntities&#34;&#34; EntityKeyValues&#34;:[{&#34;键&#34;:&#34; ID&#34;,& #34;类型&#34;:&#34; System.Int32&#34;&#34;值&#34;:&#34; 1&#34;}]}}]
Eidt 2 这是为了说明我如何创建数据
public List<person> GetPersonByIdDal(int personId)
{
List<person> list = new List<person>();
try
{
list = (from myPersons in curoEntities.persons where myPersons.id == personId && myPersons.active==true select myPersons).ToList();
}
catch (Exception ex)
{
throw new EntityContextException("GetPersonById where active = true failed.", ex);
}
return list;
}
答案 0 :(得分:0)
实体键可能来自您的ORM。您使用的是Entity-Framework吗?您可以使用Ignore,也可以执行类似
的操作var myList = _db.GetAllListsByUserId(userId).Select(x=> new SomeDto{ prop1 = x.prop1 ... }).toList();
public class SomeDto{
public string prop1 {get;set;}
}
这将为您提供一个List对象,该对象仅包含您定义的内容,只要您不希望整个结果集在那里,它也会使查询更快。
如果您正在使用Entity框架,那么您的db-context也可以在dbcontext设置中进行配置,这样可以转换代理创建等内容。请小心在全球范围内这样做,因为它可能会破坏您的更新跟踪。