mysql - 从实体类创建mysql数据库

标签 mysql .net entity-framework

我最近丢失了我的 mysql 数据库,这只是一个业余爱好项目,但我想重新创建它。我仍然在 .net 项目中创建了实体模型,其中包含它曾经拥有的所有类和连接。是否可以通过简单的方式重新创建我的数据库?

编辑
我尝试通过右键单击 library.edmx 从模型生成数据库,但我无法执行它,它会生成 MS SQL 数据库的代码。

是的,我确实在没有删除表的情况下尝试过(因此仅使用“创建所有表”下的代码,但此语法不正确)我现在正在尝试重写它以在 mysql 上工作.

生成的代码: -------------------------------------------------- -- -- 适用于 SQL Server 2005、2008 和 Azure 的实体设计器 DDL 脚本 -------------------------------------------------- -- -- 创建日期:2015 年 5 月 29 日 22:34:12 -- 从 EDMX 文件生成:E:\projecten (school + eigen)\Visual Studio\Library\Library\Model\Library.edmx -------------------------------------------------- --

SET QUOTED_IDENTIFIER OFF;
GO
USE [Library];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[FK_Book_ibfk_1]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Book] DROP CONSTRAINT [FK_Book_ibfk_1];
GO
IF OBJECT_ID(N'[dbo].[FK_Book_ibfk_2]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Book] DROP CONSTRAINT [FK_Book_ibfk_2];
GO
IF OBJECT_ID(N'[dbo].[FK_Book_ibfk_3]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Book] DROP CONSTRAINT [FK_Book_ibfk_3];
GO
IF OBJECT_ID(N'[dbo].[FK_Lending_ibfk_1]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Lending] DROP CONSTRAINT [FK_Lending_ibfk_1];
GO
IF OBJECT_ID(N'[dbo].[FK_Person_ibfk_1]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Person] DROP CONSTRAINT [FK_Person_ibfk_1];
GO
IF OBJECT_ID(N'[dbo].[FK_Lending_ibfk_2]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Lending] DROP CONSTRAINT [FK_Lending_ibfk_2];
GO

-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[Author]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Author];
GO
IF OBJECT_ID(N'[dbo].[Book]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Book];
GO
IF OBJECT_ID(N'[dbo].[BookGenre]', 'U') IS NOT NULL
    DROP TABLE [dbo].[BookGenre];
GO
IF OBJECT_ID(N'[dbo].[BookLanguage]', 'U') IS NOT NULL
    DROP TABLE [dbo].[BookLanguage];
GO
IF OBJECT_ID(N'[dbo].[Country]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Country];
GO
IF OBJECT_ID(N'[dbo].[Lending]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Lending];
GO
IF OBJECT_ID(N'[dbo].[Person]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Person];
GO
IF OBJECT_ID(N'[dbo].[TableID]', 'U') IS NOT NULL
    DROP TABLE [dbo].[TableID];
GO

-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'Author'
CREATE TABLE [dbo].[Author] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [FirstName] varchar(50)  NULL,
    [Surname] varchar(50)  NULL,
    [Suffix] varchar(50)  NULL
);
GO

-- Creating table 'Book'
CREATE TABLE [dbo].[Book] (
    [ID] guid  NOT NULL,
    [Title] varchar(255)  NOT NULL,
    [PublicationDate] datetime  NULL,
    [Edition] varchar(50)  NULL,
    [Pages] int  NULL,
    [Isbn] varchar(50)  NULL,
    [Description] varchar(65535)  NULL,
    [Author_ID] int  NOT NULL,
    [BookGenre_ID] int  NULL,
    [BookLanguage_ID] int  NOT NULL
);
GO

-- Creating table 'BookGenre'
CREATE TABLE [dbo].[BookGenre] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [Genre] varchar(50)  NOT NULL
);
GO

-- Creating table 'BookLanguage'
CREATE TABLE [dbo].[BookLanguage] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [Language] varchar(50)  NOT NULL
);
GO

-- Creating table 'Country'
CREATE TABLE [dbo].[Country] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [Country1] varchar(45)  NOT NULL,
    [Currency] varchar(3)  NULL,
    [Capital] varchar(30)  NULL
);
GO

-- Creating table 'Lending'
CREATE TABLE [dbo].[Lending] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [DateLend] datetime  NOT NULL,
    [DateReturn] datetime  NULL,
    [Book_ID] guid  NOT NULL,
    [Person_ID] int  NOT NULL
);
GO

-- Creating table 'Person'
CREATE TABLE [dbo].[Person] (
    [ID] int IDENTITY(1,1) NOT NULL,
    [FirstName] varchar(50)  NOT NULL,
    [Suffix] varchar(50)  NULL,
    [Surname] varchar(50)  NOT NULL,
    [AdressLine1] varchar(100)  NOT NULL,
    [AdressLine2] varchar(100)  NULL,
    [City] varchar(50)  NOT NULL,
    [County] varchar(50)  NOT NULL,
    [Postcode] varchar(50)  NOT NULL,
    [PhoneNumber] varchar(15)  NOT NULL,
    [Country_ID] int  NOT NULL
);
GO

-- Creating table 'TableID'
CREATE TABLE [dbo].[TableID] (
    [ID] guid  NOT NULL,
    [Table] varchar(50)  NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [ID] in table 'Author'
ALTER TABLE [dbo].[Author]
ADD CONSTRAINT [PK_Author]
    PRIMARY KEY CLUSTERED ([ID] ASC);
GO

-- Creating primary key on [ID] in table 'Book'
ALTER TABLE [dbo].[Book]
ADD CONSTRAINT [PK_Book]
    PRIMARY KEY CLUSTERED ([ID] ASC);
GO

-- Creating primary key on [ID] in table 'BookGenre'
ALTER TABLE [dbo].[BookGenre]
ADD CONSTRAINT [PK_BookGenre]
    PRIMARY KEY CLUSTERED ([ID] ASC);
GO

-- Creating primary key on [ID] in table 'BookLanguage'
ALTER TABLE [dbo].[BookLanguage]
ADD CONSTRAINT [PK_BookLanguage]
    PRIMARY KEY CLUSTERED ([ID] ASC);
GO

-- Creating primary key on [ID] in table 'Country'
ALTER TABLE [dbo].[Country]
ADD CONSTRAINT [PK_Country]
    PRIMARY KEY CLUSTERED ([ID] ASC);
GO

-- Creating primary key on [ID] in table 'Lending'
ALTER TABLE [dbo].[Lending]
ADD CONSTRAINT [PK_Lending]
    PRIMARY KEY CLUSTERED ([ID] ASC);
GO

-- Creating primary key on [ID] in table 'Person'
ALTER TABLE [dbo].[Person]
ADD CONSTRAINT [PK_Person]
    PRIMARY KEY CLUSTERED ([ID] ASC);
GO

-- Creating primary key on [ID] in table 'TableID'
ALTER TABLE [dbo].[TableID]
ADD CONSTRAINT [PK_TableID]
    PRIMARY KEY CLUSTERED ([ID] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [Author_ID] in table 'Book'
ALTER TABLE [dbo].[Book]
ADD CONSTRAINT [FK_Book_ibfk_1]
    FOREIGN KEY ([Author_ID])
    REFERENCES [dbo].[Author]
        ([ID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Book_ibfk_1'
CREATE INDEX [IX_FK_Book_ibfk_1]
ON [dbo].[Book]
    ([Author_ID]);
GO

-- Creating foreign key on [BookGenre_ID] in table 'Book'
ALTER TABLE [dbo].[Book]
ADD CONSTRAINT [FK_Book_ibfk_2]
    FOREIGN KEY ([BookGenre_ID])
    REFERENCES [dbo].[BookGenre]
        ([ID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Book_ibfk_2'
CREATE INDEX [IX_FK_Book_ibfk_2]
ON [dbo].[Book]
    ([BookGenre_ID]);
GO

-- Creating foreign key on [BookLanguage_ID] in table 'Book'
ALTER TABLE [dbo].[Book]
ADD CONSTRAINT [FK_Book_ibfk_3]
    FOREIGN KEY ([BookLanguage_ID])
    REFERENCES [dbo].[BookLanguage]
        ([ID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Book_ibfk_3'
CREATE INDEX [IX_FK_Book_ibfk_3]
ON [dbo].[Book]
    ([BookLanguage_ID]);
GO

-- Creating foreign key on [Book_ID] in table 'Lending'
ALTER TABLE [dbo].[Lending]
ADD CONSTRAINT [FK_Lending_ibfk_1]
    FOREIGN KEY ([Book_ID])
    REFERENCES [dbo].[Book]
        ([ID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Lending_ibfk_1'
CREATE INDEX [IX_FK_Lending_ibfk_1]
ON [dbo].[Lending]
    ([Book_ID]);
GO

-- Creating foreign key on [Country_ID] in table 'Person'
ALTER TABLE [dbo].[Person]
ADD CONSTRAINT [FK_Person_ibfk_1]
    FOREIGN KEY ([Country_ID])
    REFERENCES [dbo].[Country]
        ([ID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Person_ibfk_1'
CREATE INDEX [IX_FK_Person_ibfk_1]
ON [dbo].[Person]
    ([Country_ID]);
GO

-- Creating foreign key on [Person_ID] in table 'Lending'
ALTER TABLE [dbo].[Lending]
ADD CONSTRAINT [FK_Lending_ibfk_2]
    FOREIGN KEY ([Person_ID])
    REFERENCES [dbo].[Person]
        ([ID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Lending_ibfk_2'
CREATE INDEX [IX_FK_Lending_ibfk_2]
ON [dbo].[Lending]
    ([Person_ID]);
GO

-- --------------------------------------------------
-- Script has ended
-- ------------------------------
<小时/>

最佳答案

右键单击实体设计器表面上的空白区域,然后选择从模型生成数据库

Source

编辑:这将生成一个 SQL Server 数据库。我认为您无法从 Visual Studio 实体模型中获取 MySQL 语法。

编辑2:

I have tried but i just cannot create it, i've tried running the code but i need to give a SQL server which i don't have

试试这个:

  • 查看 -> 服务器资源管理器
  • 右键单击数据连接 -> 添加连接...
  • 如果您之前尚未从服务器资源管理器连接到数据库,则需要选择 Microsoft SQL Server 作为数据源
  • 连接到 LocalDb ((localdb)\v11.0) 或 SQL Express (.\SQLEXPRESS),具体取决于您安装的数据库名称,然后输入 [dbo] 作为数据库名称
  • 选择“确定”,系统会询问您是否要创建新数据库,选择"is"
  • 新数据库现在将显示在服务器资源管理器中,右键单击它并选择“新建查询”
  • 将之前生成的 SQL 复制到新查询中,然后右键单击该查询并选择“执行”

Source (1st step)

关于mysql - 从实体类创建mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538453/

相关文章:

php - 如何使用 PDO 处理数据库实例

MYSQL 如果数量较大则选择最大值

web浏览器上的php mysql表创建需要在标题中添加

asp.net - 如何在另一个dll中使用带有 Entity Framework 的asp.net动态数据

mysql - 考虑通过将 'EnableRetryOnFailure()' 添加到 'UseMySql' 调用来启用 transient 错误弹性

mysql - Firebird 到 MySQL 查询迁移 - 选择内部连接子查询

.net - 是否有将二进制数据打包成 UTF-16 字符串的标准技术?

c# - 使用 .net 中用户错误报告的行号重新创建堆栈跟踪?

.net - 键入时自动滚动 DataGridView

c# - EntityFramework Core 2 默认值