c# – 从Visual Studio数据库项目生成实体框架模型

c# – 从Visual Studio数据库项目生成实体框架模型,第1张

概述我使用的是具有数据库优先模型的EF5.并在Visual Visual Studio中的一个数据库项目来维护应用程序的Sql Server数据库模式. 要更新EF模型,我将更改部署在空数据库中… 是否可以从Visual Studio(2012)数据库项目生成和更新EF模型? 更新: 也从dacpac文件生成它是不是太糟糕的选择.可能吗? 更新: 在MS Build 2014会议上,ADO.NET团队 我使用的是具有数据库优先模型的EF5.并在Visual Visual Studio中的一个数据库项目来维护应用程序的sql Server数据库模式.

要更新EF模型,我将更改部署在空数据库中…

是否可以从Visual Studio(2012)数据库项目生成和更新EF模型?

更新:
也从dacpac文件生成它是不是太糟糕的选择.可能吗?

更新:
在MS Build 2014会议上,ADO.NET团队建议,EF的未来版本(如EF7)将仅适用于Code First方法.

后来他们澄清了新方法的名称不应该是Code First,尽管代码基础建模.也许不完全一样,但as far as I read似乎是quite similar to me.

所以我打算尝试@ adam0101解决方案.以CodeFisrt结尾的任何其他提出的解决方案都将从SSDT项目迁移到EF的CodeFisrt项目,我想要的是两者的平滑共存(也许我是一个梦想家…).

解决方法 我创建了项目 SqlSharpener,它应该能够做你所要求的.

例如,给定在SSDT项目中定义的这些表:

CREATE table [dbo].[Tasks](    [ID] INT NOT NulL PRIMARY KEY IDENTITY,[name] VARCHAR(50) NOT NulL,[Description] VARCHAR(1000) NOT NulL,[TaskStatusID] INT NOT NulL,[Created] DATETIME NOT NulL,[CreatedBy] VARCHAR(50) NOT NulL,[Updated] DATETIME NOT NulL,[UpdatedBy] VARCHAR(50) NOT NulL,CONSTRAINT [FK_Tasks_ToTaskStatus] FOREIGN KEY ([TaskStatusID]) REFERENCES [TaskStatus]([ID]))CREATE table [dbo].[TaskStatus](    [ID] INT NOT NulL PRIMARY KEY,[name] VARCHAR(50) NOT NulL)

您可以创建一个将生成实体的T4模板:

using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.ComponentModel.DataAnnotations.Schema;using System.Data.Entity;namespace SimpleExample.EntityFrameworkCodeFirst{    public partial class TaskContext : DbContext    {        public TaskContext(): base()        {        }        public DbSet<Tasks> Tasks { get; set; }        public DbSet<TaskStatus> TaskStatus { get; set; }    }    [table("Tasks")]    public partial class Tasks    {        [Key]        [required]        [DatabaseGenerated(DatabaseGeneratedOption.IDentity)]        public Int32? ID { get; set; }        [required]        [MaxLength(50)]        public String name { get; set; }        [required]        [MaxLength(1000)]        public String Description { get; set; }        [required]        public Int32? TaskStatusID { get; set; }        [ForeignKey("ID")]        public virtual TaskStatus TaskStatus { get; set; }        [required]        public DateTime? Created { get; set; }        [required]        [MaxLength(50)]        public String CreatedBy { get; set; }        [required]        public DateTime? Updated { get; set; }        [required]        [MaxLength(50)]        public String UpdatedBy { get; set; }    }    [table("TaskStatus")]    public partial class TaskStatus    {        [Key]        [required]        public Int32? ID { get; set; }        public virtual ICollection<Tasks> Tasks { get; set; }        [required]        [MaxLength(50)]        public String name { get; set; }    }}

在simple example solution中有一个working example的T4模板.如果有一个用例,sqlSharpener目前不处理,请随时查看add an issue,我会看看是否可以添加它.

总结

以上是内存溢出为你收集整理的c# – 从Visual Studio数据库项目生成实体框架模型全部内容,希望文章能够帮你解决c# – 从Visual Studio数据库项目生成实体框架模型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1260390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存