Entity Framework学习笔记——edmx文件

              

           上文简单介绍了一下Entity FrameWork,这里说一下EF的核心——edmx文件。

           在VisualStudio中建立edmx文件(此例环境为VisualStudio2012)

           1、新建—ADO.NET实体数据模型:

 

       2、选择数据模型时,因为我之前已经在数据库中建立好表了,所以我们这里先选择从数据库生成(即DB First),如果选择空模型,就可以在没有建立数据库的情况下,通过先建立实体模型来生成实体类和数据库表。

          

          3、选择数据库连接:

          

         4、选择或设置好连接的服务器、验证信息、数据库名:

          

         5、注意因为连接字符串将会保存到配置文件中,所以在这里要选择【是,在连接字符串中包括敏感数据】:

          

            6、选择我们想要生成实体的表:

          

          7、一切都完成后,如下图,edmx就已经根据我们所选的数据库表生成了相应的实体,同时,在解决方案资源管理器中的T4模板Model.tt下还为自动我们生成了Department和Employee实体类。

           

         到此,edmx文件就已经创建完成了。

        上文说到,edmx文件的本质就是一个XML文件,它用于定义概念模型、存储模型和这些模型之间的映射。虽然edmx文件默认情况下以实体设计器的方式打开,还可以右击Model.edmx文件以XML文本编辑器打开,这时就可以看到edmx文件的庐山真面目:

         

        从代码中可以看到,edmx大致由SSDL、CSDL、C-S三部分组成,分别对应着对于数据库实体数据库表与实体之间的映射这三方面的解析,SSDL中有对数据库表、字段等的规定,CSDL中有对实体名、实体属性等的规定,C-S中有对数据库表与实体之间的映射。一句话总结edmx文件,就是用来解析存储模型、概念模型以及这两者之间的映射,其实也还是上文中那张图片的详细表现。

       上文第七步说到,生成edmx模板的同时,跟实体相对应的两个类Employee和Department也生成了,在实体类的父节点,还有一个Model.tt,这就是T4模板,看了下面这一段T4模板中的代码,就会理解,其实这两个实体类是T4模板根据edmx配置文件生成的。(用VisualStudio查看T4模板时代码会很混乱,因此可以安装一个T4 Editor的插件再进行T4模板代码的学习,插件下载地址:点击跳转

<#@ include file="EF.Utility.CS.ttinclude"#><#@ 
 output extension=".cs"#><#

const string inputFile = @"Model.edmx";
var textTransform = DynamicTextTransformation.Create(this);
var code = new CodeGenerationTools(this);
var ef = new MetadataTools(this);
var typeMapper = new TypeMapper(code, ef, textTransform.Errors);
var	fileManager = EntityFrameworkTemplateFileManager.Create(this);
var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile);
var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef);

if (!typeMapper.VerifyCaseInsensitiveTypeUniqueness(typeMapper.GetAllGlobalItems(itemCollection), inputFile))
{
    return string.Empty;
}

WriteHeader(codeStringGenerator, fileManager);

foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>(itemCollection))
{
    fileManager.StartNewFile(entity.Name + ".cs");
    BeginNamespace(code);
#>


         可能是今天说了一天英语的缘故,困得眼睛都睁不开了。Good Night!

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
Entity Framework (EF) 中设置数据库文件路径需要修改连接字符串中的数据源(Data Source)部分。以下是一些步骤: 1. 打开应用程序的配置文件(App.config 或 Web.config)。 2. 在连接字符串中找到与EF相关的连接字符串。通常,连接字符串位于`<connectionStrings>`元素中。 3. 修改连接字符串的数据源(Data Source)部分以指定新的数据库文件路径。您可以使用绝对路径或相对路径。如果使用相对路径,请确保路径是相对于应用程序的运行目录。 下面是一个示例连接字符串,将数据库文件保存在应用程序的根目录下的`Data`文件夹中: ```xml <connectionStrings> <add name="MyDbContext" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Data\MyDatabase.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/> </connectionStrings> ``` 在上面的示例中,我们使用了`AttachDbFilename`选项来指定数据库文件的路径。`|DataDirectory|`是一个占位符,表示应用程序的数据目录。通过在连接字符串中使用这个占位符,EF将自动解析并替换为实际的数据目录。 请注意,具体的连接字符串格式可能会因所使用的数据库提供程序和配置方式而有所不同。上述示例中使用的是SQL Server数据库提供程序(System.Data.SqlClient),如果使用其他数据库(如MySQL、Oracle等),连接字符串和指定路径的选项可能会有所不同。 在运行时,EF将使用连接字符串中指定的路径创建数据库文件,并将其放在指定的路径下。如果路径无效或没有权限,将会引发异常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值