精进不休 .NET 4.0 (7) - ADO.NET Entity Framework 4.0 新特性

.NET 4.0 精进不休:约定优于配置与 dynamic 的技术基因溯源 约定优于配置(Convention over Configuration)和 dynamic 是现代 .NET 开发的两大基石概念,前者推动框架从显式声明转向智能推断,后者赋予 C# 运行时动态互操作能力。其原理根植于 .NET 4.0 时代对开发效率与抽象层级的深度重构:通过内置默认约定减少样板代码,借助 DLR 实现跨语言与松耦合集成。这一设计哲学持续影响 EF Core 的 Fluent API、ASP.NET Core 的中间件管道及 JSON 序列化生态。在微服务、低代码和领域驱动开发等场景中,理 阅读详情
[源码下载]


精进不休 .NET 4.0 (7) - ADO.NET Entity Framework 4.0 新特性


作者: webabcd


介绍
ADO.NET Entity Framework 4.0 的新增功能
  • 对外键的支持,即把外键当做实体的一个属性来处理 
  • 对复杂类型的支持,即实体属性可以是一个复杂类型 
  • 将多个表映射到一个概念实体,将一个表拆为多个概念实体 
  • 增强了 LINQ to Entities
  • 新增了对 POCO(Plain Old CLR Object)的支持,即 Model 代码中不会有任何关于持久化的代码 
  • 其他新特性


示例
1、外键 的 Demo
EntityFramework/ForeignKeys/Demo.aspx.cs
代码
/*
 * ADO.NET Entity Framework 4.0 - 新增了对外键的支持,即把外键当做实体的一个属性来处理
 
*/

using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  DataAccess.EntityFramework.ForeignKeys
{
    
public   partial   class  Demo : System.Web.UI.Page
    {
        
private  Random _random  =   new  Random();
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            
//  在一个已存在的产品类别下新建一个产品(通过外键值)
             using  (var ctx  =   new  ForeignKeysEntities())
            {
                Product p 
=   new  Product
                {
                    Name 
=   " webabcd test "   +  _random.Next().ToString(),
                    ProductNumber 
=  _random.Next().ToString(),
                    StandardCost 
=   1 ,
                    ListPrice 
=   1 ,
                    SellStartDate 
=  DateTime.Now,
                    rowguid 
=  Guid.NewGuid(),
                    ModifiedDate 
=  DateTime.Now,
                    ProductCategoryID 
=   18
                };

                
//  这里需要手工 Add 这个新的 Product,然后再调用 SaveChanges()
                ctx.Products.AddObject(p);
                Response.Write(ctx.SaveChanges());
            }

            Response.Write(
" <br /><br /> " );

            
//  在一个已存在的产品类别下新建一个产品(通过外键对象)
             using  (var ctx  =   new  ForeignKeysEntities())
            {
                Product p 
=   new  Product
                {
                    Name 
=   " webabcd test "   +  _random.Next().ToString(),
                    ProductNumber 
=  _random.Next().ToString(),
                    StandardCost 
=   1 ,
                    ListPrice 
=   1 ,
                    SellStartDate 
=  DateTime.Now,
                    rowguid 
=  Guid.NewGuid(),
                    ModifiedDate 
=  DateTime.Now,
                    ProductCategory 
=  ctx.ProductCategories.Single(c  =>  c.ProductCategoryID  ==   18 )
                };
                
                
//  这里直接调用 SaveChanges() 即可,而不用再手工地 Add 这个新的 Product
                
//  因为与这个新的 Product 关联的那个已存在的 ProductCategory 会自动地 Add 这个新的 Product
                Response.Write(ctx.SaveChanges());
            }
        }
    }
}


2、复杂类型的 Demo
EntityFramework/ComplexType/Demo.aspx.cs
代码
/*
 * ADO.NET Entity Framework 4.0 - 新增了对复杂类型的支持,即实体属性可以是一个复杂类型
 * 1、在 EDM 设计器中的实体上,点击右键,在“Add”选项中可以新建一个复杂类型
 * 2、在 EDM 设计器中的实体上,选中多个属性后,点击右键,选择“Refactor into New Complex Type”可以合并多个属性为一个复杂类型
 * 3、在 EDM 设计器中的“Mapping Details”窗口或“Model Broswer”窗口里,可以对复杂类型做编辑
 * 
 * ADO.NET Entity Framework 4.0 - 对存储过程的支持有了明显的增强
 * 表现为:可以将存储过程的返回值映射到一个自定义的复杂类型上,当然,这个复杂类型也可以根据储过程的返回值自动生成
 
*/

using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  DataAccess.EntityFramework.ComplexType
{
    
public   partial   class  Demo : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            
using  (var ctx  =   new  ComplexTypeEntities())
            {
                
//  这里的 Name 类型是自定义的一个复杂类型(其有三个属性,分别为FirstName, MiddleName, LastName),详见 EDM
                Name name  =  ctx.Customers.First().Name;

                Response.Write(
string .Format( " FirstName: {0}<br />MiddleName: {1}<br />LastName: {2} " , name.FirstName, name.MiddleName, name.LastName));
            }

            Response.Write(
" <br /><br /> " );

            
using  (var ctx  =   new  ComplexTypeEntities())
            {
                
//  这里的 MyCustomer 类型,是存储过程 uspSelectCustomer(其概念模型为:GetCustomer()) 的返回值的映射类型
                MyCustomer customer  =  ctx.GetCustomer().First();
                
                Response.Write(
string .Format( " CustomerID: {0}<br />FirstName: {1}<br />MiddleName: {2}<br />LastName: {3} " , customer.CustomerID, customer.FirstName, customer.MiddleName, customer.LastName));
            }
        }
    }
}


3、将一个表拆为多个概念实体的 Demo
EntityFramework/TableSplitting/Demo.aspx.cs
代码
/*
1、将多个表映射到一个概念实体,原来就可以。在 EDM 设计器中将两个一对一的表映射到一个实体即可
2、将一个表拆为多个概念实体,原来也行,但是要在 xml 中手工配置。现在 VS2010 中只需在 EDM 设计器中做如下设置:
    a、新建两个实体,做好相关字段相对于原表的映射
    b、在这两个实体间新建一个一对一的关联
    c、双击这个关联线,编辑约束,指明主表和依赖表,并设置相关的主键
*/

using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  DataAccess.EntityFramework.TableSplitting
{
    
public   partial   class  Demo : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            
//  将一个 ErrorLog 表映射到两个实体上 ErrorLog 和 ErrorLogExt,详见 EDM
             using  (var ctx  =   new  TableSplittingEntities())
            {
                ErrorLog log 
=  ctx.ErrorLogs.First();
                Response.Write(log.ErrorLogID);

                Response.Write(
" <br /> " );

                log.ErrorLogExtReference.Load();
                Response.Write(log.ErrorLogExt.ErrorMessage);
            }
        }
    }
}


4、LINQ to Entities 新功能的 Demo
EntityFramework/LINQ2Entities/Demo.aspx.cs
代码
/*
 * ADO.NET Entity Framework 4.0 - 增强了 LINQ to Entities
 
*/

using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

using  System.Data.Objects;
using  System.Data.Common;

namespace  DataAccess.EntityFramework.LINQ2Entities
{
    
public   partial   class  Demo : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            Demo1();
            Demo2();

            
//  支持 Single() 扩展方法了,之前的版本不支持
        }

        
private   void  Demo1()
        {
            
//  ADO.NET Entity Framework 4.0 - 新增了 System.Data.Objects.EntityFunctions 和 System.Data.Objects.SqlClient.SqlFunctions
            
//  其作用相当于 Linq to Sql 中的 System.Data.Linq.SqlClient.SqlMethods
             using  (var ctx  =   new  LINQ2EntitiesEntities())
            {
                var products 
=
                      from p 
in  ctx.Products
                      
where  System.Data.Objects.SqlClient.SqlFunctions.DateDiff( " year " , p.SellStartDate, DateTime.Now)  <=   10
                      select p;
                
                Response.Write((products 
as  System.Data.Objects.ObjectQuery).ToTraceString());
                Response.Write(
" <br /> " );
                Response.Write(
" 十年内销售的产品数量为: "   +  products.Count());
            }

            Response.Write(
" <br /><br /> " );

            
//  上面的示例如果写成 esql 就是如下的写法。当然这个原来就支持。
             using  (var ctx  =   new  LINQ2EntitiesEntities())
            {
                
string  esql  =   " select value p from LINQ2EntitiesEntities.Products as p where SqlServer.DATEDIFF('year', p.SellStartDate, SqlServer.GETDATE()) <= 10 " ;
                
//  string esql = "using SqlServer; select value p from LINQ2EntitiesEntities.Products as p where DATEDIFF('year', p.SellStartDate, GETDATE()) <= 10";

                ObjectQuery
< Product >  products  =  ctx.CreateQuery < Product > (esql);

                Response.Write(products.ToTraceString());
                Response.Write(
" <br /> " );
                Response.Write(
" 十年内销售的产品数量为: "   +  products.Count());
            }

            Response.Write(
" <br /><br /> " );
        }

        
private   void  Demo2()
        {
            
//  使用 esql 的方式调用 sql 中的用户自定义函数
             using  (var ctx  =   new  LINQ2EntitiesEntities())
            {
                
string  esql  =   " select value top(1) LINQ2EntitiesModel.Store.ufnGetFullName(c.firstName, c.middleName, c.lastName) from LINQ2EntitiesEntities.Customers as c " ;

                ObjectQuery
< string >  customers  =  ctx.CreateQuery < string > (esql);

                Response.Write((customers 
as  System.Data.Objects.ObjectQuery).ToTraceString());
                Response.Write(
" <br /> " );

                
foreach  (var customerName  in  customers.ToList())
                {
                    Response.Write(customerName);
                    Response.Write(
" <br /> " );
                }
            }

            Response.Write(
" <br /><br /> " );

            
//  clr 的方式调用 sql 的用户自定义函数。具体实现见 MyClass 类
             using  (var ctx  =   new  LINQ2EntitiesEntities())
            {
                var customers 
=
                    from c 
in  ctx.Customers
                    select MyClass.GetFullName(c.FirstName, c.MiddleName, c.LastName);
                customers 
=  customers.Take( 1 );

                Response.Write((customers 
as  System.Data.Objects.ObjectQuery).ToTraceString());
                Response.Write(
" <br /> " );

                
foreach  (var customerName  in  customers.ToList())
                {
                    Response.Write(customerName);
                    Response.Write(
" <br /> " );
                }
            }
        }
        
        
public   static   class  MyClass
        {
            
            
//  System.Data.Objects.DataClasses.EdmFunction(string namespaceName, string functionName) - 将 sql 中的指定的用户自定义函数映射到 clr 的方法上
            
//      string namespaceName - SSDL(存储模型)的命名空间,可以在 edmx 文件中找到这个值
            
//      string functionName - sql 中的用户自定义函数名
            [System.Data.Objects.DataClasses.EdmFunction( " LINQ2EntitiesModel.Store " ,  " ufnGetFullName " )]
            
///   <summary>
            
///  此方法的参数要与其所映射的 sql 用户自定义函数的参数相匹配
            
///  此方法只可用于 linq 表达式,方法内不用做任何实现
            
///   </summary>
             public   static   string  GetFullName( string  firstName,  string  middleName,  string  lastName)
            {
                
throw   new  NotSupportedException( " You can only call this method as part of a LINQ expression " );
            }
        }
    }
}


5、POCO 的 Demo
Demo.aspx
代码
<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeBehind = " Demo.aspx.cs "  Inherits = " POCODemo.Demo "   %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head  runat ="server" >
    
< title ></ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
        ADO.NET Entity Framework 4.0 - 新增了对 POCO(Plain Old CLR Object)的支持,即 Model 代码中不会有任何关于持久化的代码
        
< ul >
            
< li > 1、线上有 POCO 的 T4(Text Template Transformation Toolkit)模板 </ li >
            
< li > 2、在 EDM 设计器上单击右键,选择“Add Code Generation Item”,在线上模板中选择“ADO.NET C# POCO Entity Generator”模板生成即可 </ li >
            
< li > 3、在 EF 中,POCO 与非 POCO 不能在一个项目中共存,因为非 POCO 的 EF 在 assembly 级别上会有如下声明 < br  />
                using System.Data.Objects.DataClasses;
< br  />
                [assembly: EdmSchemaAttribute()]
< br  />
                而 POCO 不需要这个声明,所以一个程序集内不能既有 POCO 又有非 POCO 
</ li >
            
< li > 4、具体的 POCO 代码,详见本例中的由 POCO 模板生成的代码  </ li >
        
</ ul >
    
</ div >
    
</ form >
</ body >
</ html >


6、其他新特性
EntityFramework/Others.aspx
代码
<% @ Page Title = " 其它,一笔带过 "  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " Others.aspx.cs "  Inherits = " DataAccess.EntityFramework.Others "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >
    
< p >
        1、T4 模板引擎(微软的一个代码生成引擎) - Text Template Transformation Toolkit
    
</ p >
    
< p >
        2、增强了 EDM 设计器
    
</ p >
    
< p >
        3、对 Model-First 的支持,即根据概念模型生成存储模型和映射模型
        
< ul >
            
< li > 在概念模型(EDM 设计器)上单击右键,选择“ Generate Database from Model”,即可生成数据库脚本 </ li >
            
< li >
                在 EDM 设计器中,与 Model-First 相关的字段属性说明
                
< ul >
                    
< li > StoreGeneratedPattern - 该字段所对应的数据库中的列属性(有三种:无,自增,通过计算而来) </ li >
                    
< li > FixedLength - FixedLength=true 对应 nchar, FixedLength=false 对应 nvarchar </ li >
                    
< li > Unicode - 是否是 Unicode 编码。比如字符串如果是非 Unicode 则对应 varchar,如果是 Unicode 则对应 nvarchar </ li >
                    
< li > Max Length - 最大字符数。对应 varchar(n) 或 nvarchar(n) 中的 n </ li >
                
</ ul >
            
</ li >
        
</ ul >
    
</ p >
    
< p >
        4、Code Only - 在 POCO 的基础上,连 EDM 也不需要了(即不用再做概念模型,映射模型,存储模型的配置), 纯写代码即可,可惜在 EF 4.0 的正式版里这个功能被去掉了
    
</ p >
    
< p >
        5、 改进了 SQL 语句的生成
    
</ p >
    
< p >
        6、Lazy Loading - 支持延迟加载,相关设置 context.ContextOptions.DeferredLoadingEnabled = true; 其默认值就是 true
    
</ p >
    
< p >
        7、Explicit Loading - 显示加载,看下面的例子
        
< ul >
            
< li > 加载导航属性的方法如下(当然 Include 也可以达到同样的效果)context.LoadProperty(category, "Products"); </ li >
            
< li > 上面那个方法(包括 Include)不太好,因为如果实体集名称写错的话 runtime 的时候是才能发现,所以为了避免写错可以使用如下方法 context.LoadProperty(category, c => c.Products); </ li >
        
</ ul >
    
</ p >
    
< p >
        8、几种自带的 T4 模板的说明
        
< ul >
            
< li > ADO.NET EntityObject Generator - 把 edmx 文件中的内联代码摘出来 </ li >
            
< li > ADO.NET POCO Entity Generator - 生成 POCO(Plain Old CLR Object) 实体,其包括每个表所映射的实体及一个Context,POCO 中不会包含持久化相关的代码(这个模板非内置,可以在线上模板中找到) </ li >
            
< li > ADO.NET Self-Tracking Entity Generator - POCO 的加强版,在 POCO 的基础上增加了实体状态自跟踪的功能 </ li >
        
</ ul >
    
</ p >
    
< p >
        9、新建 EDM 的时候,在向导中有一个选项“pluralize or singularize generated object names”,其意思为:生成对应的 Model 时,实体名称自动用单数形式,实体集名称自动用复数形式
    
</ p >
</ asp:Content >




OK
[源码下载]
用EF4.0+ado.net4.0做的增删改查 特别适合新手学EF4.0 立即下载

相关推荐

倍加福(P+F)R2000修改雷达IP

在调试车子的时候,用到了倍加福R2000的一款雷达,设备启动建图时发现建不了图,于是查看/scan发现话题无数据,尝试ping雷达接口发现ping不通,应该是IP地址与上位机端口的IP地址不对。首先查看雷达的IP地址,这个在雷达上有两个按键,按下后可以显示IP: 按两下右边的键再按一下左边的键雷达上会显示出IP号,这里拍的不是很清楚。查看到开始时雷达IP地址为192.168.111.10,而上位机ping的IP地址为192.168.188.50.与实际不同,所以需要对雷达进行配置。一台windows笔记本

YiYeZhiNian的博客 5890

MySQL介绍

介绍

yumiao0220的博客 1097

如何下载最新版本的VMware Workstation

随着虚拟化技术的发展,VMware Workstation作为行业领先的桌面虚拟化软件,为用户提供了在单一物理计算机上运行多个操作系统的能力。本文将详细介绍如何从Broadcom支持网站下载最新的VMware Workstation Pro版本。

安呀智数据坊的博客 665

MySQL(10):实体、实体表和外键(foreign key)

1.实体 数据库管理系统中的各种用于数据管理方便而设定的各种数据管理对象,如:数据库表、视图、存储过程等都是数据库实体。广义上讲,这些对象中所存储的数据也是数据库实体。因为它们也是确切存在着的实体。 2.实体关系(表设计) (1)1对1的关系: 两个实体表内,存在相同的主键字段; 如果记录的主键值等于另一个关系表内记录的主键值,则两条记录的对应为1对1 对应关系 下...

weixin_30848775的博客 567

微信小店推客分销系统源码获取与自研开发全攻略(2025年最新版)

源码选择建议快速试错:选用开源项目(如启航系统),3天可上线基础功能长期布局:购买商业源码授权,重点定制分佣规则与UI交互完全自研:适合年GMV过亿的大型企业,需前置投入风控与合规设计行动清单注册微信开放平台账号,完成视频号机构认证下载开源项目代码,部署本地测试环境联系三家源码供应商,获取合规性审计报告设计三级分佣比例表,通过法律顾问合规审查通过以上路径,可高效构建合规、稳定、高转化的微信小店推客分销系统,抢占2025年视频号电商红利。

2401_85184777的博客 1281

基于AI的智能开发环境—Trae在Web开发中的应用实战与性能评估【Trae项目实战】

Trae 是一款与 AI 深度集成的开发工具,提供智能问答、代码自动补全和基于 Agent 的 AI 自动编程能力,极大提升开发效率。它具备完备的 IDE 功能,如代码编写、项目管理和源代码管理等,同时还具备强大的 AI 助手,能够提供智能问答、实时代码建议、代码片段生成等服务。开发者可以通过自然语言与 AI 协作,从 0 到 1 开发项目,AI 会根据需求自动生成代码或创建文件。

一键难忘的博客 3万+

数据库中的实体、元组、字段、属性、码、分量、依赖关系、完全部份传递依赖、范式等你了解吗?【笔记自用】

我们读不同的描写数据库的文章,会看到不同的概念名称,从某种意义上来讲,是公说公有理,婆说婆有理的问题,只是个人理解不同而称呼有异,这也给一些人,尤其是初学者带来一定的困扰,鉴于此,特整理《数据库常用专业术语的基本概念的定义与理解》这篇文章,行文参考了很多网上的资料(请原谅我不喜欢看书),并加入了我自己的理解,如有谬误,请指正。 实体 实体是指现实世界中客观存在的并可以相互区分的对象或事物。至于如何定义一个实体,则会根据不同的需要,不同的视角有所不同,比如我们将生物作为实体,那么我们就考虑这个实体有哪些属性,

#姚大姚 的博客 1万+

前端使用二开Thingsboard一、二、三事(四)-部件库

以项目实战为基础,逐步介绍前端在thingsboard系统二次开发中的一些注意事项以及一些thingsboard一些页面功能讲解,为前端人员开发使用thingsboard提供一种可靠思路,打造一个完美的物联网系统。

weixin_43163457的博客 739

Visual Studio运用Entity Framework连接数据库

的对话框里, 点击Tabels,然后点击dbo,就选勾Cards。点击Finish按键。打开NuGet Package Manager对话框后,在Browse标签里,输入EntityFramework,选择Entity Framework,点击一下Install按键,安装EntityFramework。打开Entity Data Model Wizard的Choose Model Contents对话框后,点击EF Designer from database,然后点击Next按键。

DXB2021的博客 999

C#上位机部署YOLO模型:ONNX转换+推理加速+内存优化全攻略

本文针对C#上位机部署YOLO模型的三大痛点,提供从模型转换到优化部署的完整解决方案。首先介绍将YOLO模型转换为ONNX格式的必要性和方法,包括自动和手动两种转换方案及常见问题解决。然后详细讲解C#环境配置和基础部署流程,包括图像预处理、模型加载、推理计算和结果解析。最后提出推理加速和内存优化策略,通过硬件适配、多线程处理和资源复用等技术手段,实现工业场景下的高效稳定运行。全文提供可直接复用的代码片段和实测验证方案,覆盖YOLOv5/v7/v8全版本,帮助开发者快速实现轻量化部署。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 785

【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part6基于图谱的问答实现

前序文章:本部分则是整个项目的核心内容——基于图谱的问答。需要实现的是对于“简单问题”进行解析,然后从图谱数据库中查询与该人员及其相关人员信息,返回到前端并显示该人员的基本信息。除此之外,用户可以点击返回的结果人员节点,页面能够显示该用户的个人基本信息。那么现在就开始吧。根据源码实现问答形式,其实是比较简单的。原代码中使用ltp对问题进行分词,选取具有名次词性的关键词进行处理。 ltp配置稍许麻烦,我使用jieba分词工具对问题进行分词,然后再按照原文提取问句中人物及关系,然后构建cypher neo4j查

让算法融入生活,改变生活! 2935

数据库中主外键概念详细介绍

关于数据库的主外键设置问题 一、主外键概念 主键 ​ 1、主键 ​ 简单而言,能够唯一的表示表中的每一行数据,这样的列属性成为表的主键,使用表主键可以保证实体的完整性,可对表内数据进行修改、删除时使用主键来操作,同时也主要用于和其他表之间通过主外键关联建立表之间的联系。例如: ​ 下图这个员工表中对应第一行红色字段为表的主键,它标识出了数据的唯一性 ​ 2、主键作用 ​ 保证数据库表的唯一性、完整性 ​ 用于和其他表之间建立外键关联的关系,从而实现对关联表的控制操作 ​ 3、主键设计原则 ​ 主键

学而时习 1万+

AI漫剧全套万能提示词合集

今天给大家整理一套已经跑通爆款漫剧的万能提示词库!覆盖:豆包剧本人设词 + 分镜生成词 + 即梦绘图词 + 动态优化词 + 防翻车固定词直接复制粘贴,新手也能做出稳定、高清、统一、有质感的AI漫剧!你是资深短视频漫剧编剧,擅长制作60秒竖屏爆款AI漫剧,请为我创作一集完整漫剧内容。要求:开头3秒高能抓眼,中段有冲突转折,结尾留强悬念钩子,节奏紧凑、适合短视频流量。首先生成固定统一人物人设:包含脸型、五官、发色、发型、穿搭、身材、气质、画风、光影细节,要求足够精细,保证全程角色不变脸。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1862

精进不休 .NET 4.0 (8) - ADO.NET Entity Framework 4.0 Self Tracking Entity

[源码下载]<br /><br /><br />精进不休 .NET 4.0 (8) - ADO.NET Entity Framework 4.0 Self Tracking Entity<br /><br /> 作者:webabcd<br /><br /><br /> 介绍<br /> ADO.NET Entity Framework 4.0 的新增功能<br />对 Self Tracking Entity(实体状态自跟踪)的支持,基于 POCO WCF 结合 Self Tracking Entit

webabcd的专栏 674

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上接精进不休 .NET 4.0 (8) - ADO.NET Entity Framework 4.0 Self Tracking Entity

2、WCF 结合 Self Tracking Entity 的 Demo 服务端:NTierServer/IMyService.cs using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; usi...

weixin_34128839的博客 143

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Entity Framework Code-First 文章汇集

为了支持以设计为中心的开发流程,EF4 还更多地支持以代码为中心 (code-centric) ,我们称为代码优先的开发,代码优先的开发支持更加优美的开发流程,它允许你: 在不使用设计器或者定义一个 XML 映射文件的情况下进行开发。 允许编写简单的模型对象POCO (plain old classes),而不需要基类。 通过"约定优于配置",使得数据库持久层不需要任何的配置 也可以覆...

weixin_34194317的博客 90

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

MySQL快速入门06----实体关系 & 外键

一 实体关系 在数据库中,常用的实体关系有三种:一对一、一对多和多对多。 1.1 一对一的实体关系 如果记录的主键值等于另一个关系内记录的主键值,我问称之为一对一的实体关系。 一对一的实体关系(1:1)使得两个表保存的实体之间数据是对等的。 如:一个学生有基本信息和详细信息。 1.2 一对多的实体关系 一

烽火前秦路 1308

关于数据库主键和外键(终于弄懂啦)

一、什么是主键、外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如   学生表(学号,姓名,性别,班级)  其中每个学生的学号是唯一的,学号就是一个主键  课程表(课程编号,课程名,学分)  其中课程编号是唯一的,课程编号就是一个主键  成绩表(学号,课程号,成绩)  成绩表中单一一个属性无法唯一标识

bingqingsuimeng的专栏 34万+

MySQL学习笔记 第五讲:实体和外键

第五讲:实体和外键   1. 1:1关系:两个实体表内,存在相同的主键字段     如果记录的主键值等于另一个关系表内记录的主键值,则两条记录对应1:1 2.1:n关系:一个实体对应多个其他实体       例:一个班级对应多个学生       设计:在多的那端增加一个字段,用于指向该实体所属的另外实体的标识 3.m:n关系:多对多        设计:典型的方法:利用一个中间表表

仰望星空 1605

数据库 之 理解 超键、候选键、主键、主属性、外键

首先看看各种键的定义: 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key):不含有多余属性的超键称为候选键 主键(primary key):用户选作元组标识的一个候选键程序主键 外键(foreign key)如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外键。

稚枭天卓 1万+

oracle--day4(数据建模(E-R图) 范式,实体关系(主外键),ER图中符号的表示,建表 约束 constraint 常用数据类型,特殊建表)

第七章:运行时参数 sql语句中的值,我们可以使用一个参数来代替,然后每次运行的时候都可以重新输入这个值 例如: select last_name,salary,dept_id from s_emp where id=&id; select last_name,salary,dept_id from s_emp w...

qq_41533897的博客 3291
上一篇: 精进不休 .NET 4.0 (6) - ADO.NET Data Services 1.5 新特性
下一篇: 精进不休 .NET 4.0 (8) - ADO.NET Entity Framework 4.0 Self Tracking Entity
webabcd
博客等级 码龄17年 28粉丝 911原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值