Api:无法检索元数据,mvc:未将对象引用设置到对象的实例

简介: Api:无法检索元数据,mvc:未将对象引用设置到对象的实例

** 原因: ** 在CodeFirst的时候,对于一对一的关系,如果在两个Entity中都互相添加了对方作为导航属性就会出现这样的错误。新建ApiController的时候提示“无法检索元数据”,新建MVCController的时候回提示“未将对象引用设置到对象的实例”

解决方案:删掉其中的一个导航属性


image.png

错误:生成的Api提示说有循环引用的情况时,在Api项目的Global.asax文件内添加代码:

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
            GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);


api

无法序列化:原因可能是因为Entity中的某个Entity的属性与数据库中对应的表的属性不对应,多了或少了,并且数据库迁移的时候Ef并没有发现这个不同

跨域访问Api:http://www.cnblogs.com/zd1994/p/6238468.html

//创建学校

var create = function (school) {

return $http.post(schoolApiUrl + "SchoolPost",school);

};

message:不支持OPTIONS方法:

解决方案:

API  Web.config

<handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <!--<remove name="OPTIONSVerbHandler" />-->
      <remove name="TRACEVerbHandler" />
      <!--<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />-->
    </handlers>


再把api的验证取消

//新增学校

// POST: api/Schools
        [HttpPost]
        [ResponseType(typeof(School))]
        public IHttpActionResult SchoolPost(School school)
        {
            //school = JsonConvert.DeserializeObject<School>(thx);
            //if (!ModelState.IsValid)
            //{
            //    return BadRequest(ModelState);
            //}
            db.Schools.Add(school);
            db.SaveChanges();
            return CreatedAtRoute("DefaultApi", new { id = school.ID }, school);
        }


运行所选代码生成器时出错 调用的目标发生了异常



在api的webconfig中配置了两个connectionStrings,删除其中一个


"ExceptionMessage":"LINQ to Entities 不识别方法get_Item(Int32)”,因此该方法


原因:linq表达式中无法识别某个方法,看你写的是哪个方法


比如:

//获取角色菜单
          List<Role_Menu> role_Menu = db.Role_Menu.Where(u => u.RoleID ==    user_Role.RoleID).ToList();
          //这样就会报上面的错误,原因是where里面不能调用这种user_Role.RoleID。
            //所以可以这样写,先把值构造好,再直接传值进去
             Guid str1 = user_Role.RoleID;
            //获取角色菜单
            List<Role_Menu> role_Menu = db.Role_Menu.Where(u => u.RoleID == str1).ToList();


在应用程序配置文件中找不到名为“DBConn”的连接字符串



原因:如果解决方案下有多个项目,则在做数据库迁移的时候每个项目的config配置文件下都需要有链接数据库的字符串


image.png

相关文章
|
4月前
|
JSON API 数据格式
您可以在钉钉开放平台的API文档中找到对应的API接口来创建审批实例
您可以在钉钉开放平台的API文档中找到对应的API接口来创建审批实例【1月更文挑战第20天】【1月更文挑战第96篇】
61 2
|
4月前
|
JSON API 数据格式
您可以在钉钉开放平台的API文档中找到对应的API接口来创建审批实例
您可以在钉钉开放平台的API文档中找到对应的API接口来创建审批实例【1月更文挑战第9天】【1月更文挑战第41篇】
131 2
|
4月前
|
关系型数据库 MySQL API
|
4月前
|
API 网络安全
调用钉钉的API获取审批实例ID列表时返回的结果为
调用钉钉的API获取审批实例ID列表时返回的结果为【1月更文挑战第5天】【1月更文挑战第21篇】
41 1
|
1月前
|
SQL API Python
Python DB API下规范下cursor对象常用接口
Python DB API下规范下cursor对象常用接口。
21 4
|
6天前
|
API Python
记录openai官网关于Setup your API key for a single project(为单个项目设置API 可以)的错误(2023/11/24)
记录openai官网关于Setup your API key for a single project(为单个项目设置API 可以)的错误(2023/11/24)
18 0
|
15天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
41 4
|
18天前
|
API 数据库
工作流JBPM操作API启动实例&查询任务
工作流JBPM操作API启动实例&查询任务
15 0
|
27天前
|
JavaScript API
Node.js API实例讲解——FS 文件夹操作
Node.js API实例讲解——FS 文件夹操作
32 0
|
2月前
|
XML 前端开发 Java
MVC 模式及对象持久化
MVC 模式及对象持久化
30 7