【问题标题】:Unable to add the class object to the entity framework model无法将类对象添加到实体框架模型
【发布时间】:2017-10-27 07:23:03
【问题描述】:

我正在创建一个发布 API 来将数据存储在数据库中。我创建了一个类并将类成员数据添加到模型中,但出现错误

给出错误 - 无法从“System.Web.Mvc.JsonRequestBehavior”转换为“Newtonsoft.Json.JsonSerializerSettings”

public ActionResult AddTemprature([FromBody]tempretureViewModel paramTemplate)
{
    try
    {
        DateTime currentTime = DateTime.Now;
        using (smartpondEntities DB = new smartpondEntities())
        {
            WebApi.Temperature temptable = new WebApi.Temperature();
            // and you need paramTemplate props to template object
            DB.Temperatures.Add(temptable);
            DB.SaveChanges();
            return Json(true, JsonRequestBehavior.AllowGet);
        }
    }
    catch (Exception Ex)
    {

    }
    return Json(false, JsonRequestBehavior.AllowGet);
}

public  class tempretureViewModel
{

    public decimal? temp1 { get; set; }
    public decimal? PHValue { get; set; }
    public decimal? DOValue { get; set; }
    public DateTime? currentTime { get; set; }
}

WebApiConfig

 public static void Register(HttpConfiguration config)
    {


        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        GlobalConfiguration.Configuration.Formatters.Clear();
        GlobalConfiguration.Configuration.Formatters.Add(new System.Net.Http.Formatting.JsonMediaTypeFormatter());
    }

【问题讨论】:

    标签: asp.net json entity-framework model-view-controller asp.net-web-api2


    【解决方案1】:

    它与 asp.net、json 实体框架、模型视图控制器、asp.net-web-api2 无关。它是关于 c# 的。 WebApi.Controllers.tempretureViewModel'和'WebApi.Temperature'”不同的类型。

    public ActionResult AddTemprature([FromBody]tempretureViewModel paramTemplate)
            {
                try
                {
                    currentTime = DateTime.Now;
                    using (smartpondEntities DB = new smartpondEntities())
                    {
                        WebApi.Temperature temptable = new WebApi.Temperature();
                        // and you need to set paramTemplate props to template object
    
                        DB.Temperatures.Add(temptable);
                        DB.SaveChanges();
                        return Json(true, JsonRequestBehavior.AllowGet);
                    }
                }
                catch (Exception Ex)
                {
    
                }
                return Json(false, JsonRequestBehavior.AllowGet);
            }
    

    更新:WebApiConfig.cs

    GlobalConfiguration.Configuration.Formatters.Clear();
    GlobalConfiguration.Configuration.Formatters.Add(new System.Net.Http.Formatting.JsonMediaTypeFormatter());
    

    【讨论】:

    • 给出错误 - 无法从 'System.Web.Mvc.JsonRequestBehavior' 转换为 'Newtonsoft.Json.JsonSerializerSettings'
    • 我应该在注册方法中添加它吗?
    • 项目未构建,显示相同的错误。更新了我的问题,我已经展示了我如何在注册方法中添加。
    【解决方案2】:

    使用类上面的命名空间而不是使用类 我用粗体标记了它。 WebApi.Temperature temptable = new WebApi.Temperature(); 添加命名空间

    public ActionResult AddTemprature([FromBody]tempretureViewModel paramTemplate)
    {
        try
        {
            DateTime currentTime = DateTime.Now;
            using (smartpondEntities DB = new smartpondEntities())
            {
                **WebApi.Temperature temptable = new WebApi.Temperature();**
                // and you need paramTemplate props to template object
                DB.Temperatures.Add(temptable);
                DB.SaveChanges();
                return Json(true, JsonRequestBehavior.AllowGet);
            }
        }
        catch (Exception Ex)
        {
    
        }
        return Json(false, JsonRequestBehavior.AllowGet);
    }
    
    public  class tempretureViewModel
    {
    
        public decimal? temp1 { get; set; }
        public decimal? PHValue { get; set; }
        public decimal? DOValue { get; set; }
        public DateTime? currentTime { get; set; }
    }
    

    【讨论】:

    • 对不起,我没有告诉你我需要在我的 sn-p 中添加哪个命名空间
    • 使用WebApi;像这样声明类 Temperature temptable = new Temperature();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    相关资源
    最近更新 更多