首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.Net Mvc实体框架反序列化对象Linq查询空对象

Asp.Net Mvc实体框架反序列化对象Linq查询空对象
EN

Stack Overflow用户
提问于 2019-02-24 16:25:03
回答 1查看 110关注 0票数 0

我将JSON文件反序列化为实体类。为了简化,让我们假设这些是我的类

代码语言:javascript
复制
public class Result{
 ...
 public List<Sens> senses { get; set; }
}
public class Sens{
...    
 public Object definition { get; set; }
 }

在将JSON反序列化为结果对象之后,我将其插入到数据库中。没有错误,我可以插入没有冲突的结果和感觉。但是,当我像这样使用LINQ查询从数据库中调用结果时,我得到了结果对象,但是我的感官为空。问题1为什么以及如何解决它?

代码语言:javascript
复制
var results =(from r in db.Results
         where r.headword == Id
         select r).ToList();

我试着增加我的感官来得到这样的结果

代码语言:javascript
复制
 foreach (Result item in resultmodel.Results)
 {
     item.senses = (from s in db.Senses
                           join r in db.Results on s.res equals r
                           where r.Id_ == item.Id_
                           select s).ToList();
 }

我可以补充,但是当我试图从我的观点展示感官时,我得到了

System.Collections.Generic.List`1System.String

但是我在等待,这将是一个字符串问题2,,我的方法有什么问题。

EN

回答 1

Stack Overflow用户

发布于 2019-02-25 17:17:59

如果将JSON字符串转换为c#对象,就不会有问题。但作为回报,您希望将字符串映射到对象。那是什么东西?这些财产是什么?C#对此一无所知。

在我的一个项目中,我在从Redis服务器进行读写时遇到了类似的问题。我在序列化对象时添加了类型定义,并使用这些类型进行反序列化。

序列化:

代码语言:javascript
复制
var jsonString = JsonConvert.SerializeObject(item, _settings);
return Encoding.UTF8.GetBytes(jsonString);

反序列化:

代码语言:javascript
复制
JsonConvert.DeserializeObject<T>(jsonString, _settings);

设置:

代码语言:javascript
复制
private static readonly JsonSerializerSettings _settings = new JsonSerializerSettings
{
    TypeNameHandling = TypeNameHandling.All,
    Formatting = Formatting.None,
    NullValueHandling = NullValueHandling.Ignore,
    DefaultValueHandling = DefaultValueHandling.Ignore
}

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54853968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档