Asp.Net MVC如何不改变数据库结构

chair128 2018-02-18 08:30:11
最近在学习Asp.Net MVC,数据库是正在使用中的另一个系统的MS SQL数据库,我发现,无论用Code First,还是用Database First的方式,EF都要去改变现有的数据库结构(现有数据库结构是绝对不允许更改的,否则会造成系统崩溃),例如:

public class Student
{
[Key]
public int StudentId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public StudentAddress StudentAddress { get; set; }

只要加了导览属性:“public StudentAddress StudentAddress { get; set; }”,MVC代码运行时就会给数据库加上外键约束,导致原有系统出错。如果不加导览属性,表与表之间就无法用Include实现关联查询,甚至MVC代码会报Model与数据表结构不兼容的错:cannot be constructed in a LINQ to Entities query。
我想知道,有什么方案,可以用MVC读取现有数据库,而不改变现有数据库的结构?
...全文
284 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chair128 2018-02-19
  • 打赏
  • 举报
回复
谢谢各位的回答! 我想了一个晚上,决定用MVC+SQL语句的方案,将“ DbSet<>”注释掉,如://public DbSet<Student> Student { get; set; },这样EF就不会改变现有数据库结构了。 增删改查,全部用Database.SqlQuery方法实现,如:students = ctx.Database.SqlQuery<Student>(sql).ToList();
秋的红果实 2018-02-18
  • 打赏
  • 举报
回复
你是MVC+EF吧 既然数据库不能动,那只能用Database First,达不到要求,就不用EF了,用 MVC+SQL语句 MVC和EF是两个独立的东西,EF可用或也可不用。 用EF,方便了对数据库的操作,同时也损失了灵活性,其所谓是优势同时也是劣势也!
春天的气息 2018-02-18
  • 打赏
  • 举报
回复
引用 2 楼 masanaka 的回复:
改变你数据库结构的不是Asp.Net MVC,而是ASP.NET Identity,你在创建项目的时候身份验证选择无,然后自己引入EF(如果你想用的话),自己实装身份验证的逻辑,就可以完全保留你现有数据库的结构了。
对头。
masanaka 2018-02-18
  • 打赏
  • 举报
回复
改变你数据库结构的不是Asp.Net MVC,而是ASP.NET Identity,你在创建项目的时候身份验证选择无,然后自己引入EF(如果你想用的话),自己实装身份验证的逻辑,就可以完全保留你现有数据库的结构了。

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧