MS_EntityFramework - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- æ»ãïŒããŒã¿ã¢ã¯ã»ã¹ã®ãããããADO.NET vs ORM (Entity Framework, Dapper)ïŒ
- Entity Framework
- Entity Framework Core
.NET Framework 3.5 SP1 ã§è¿œå ãããããŒã¿ããŒã¹ ã¢ã¯ã»ã¹ ãã¯ãããžãŒã
- Entity Framework ã¯ã
TableAdapterãšæ¯ã¹ããã髿¬¡ã®æ©èœãæäŸãã
é«ãçç£æ§ãèªã RAD ããŒã«ã§ãã - ããŒã¿ã¢ã¯ã»ã¹éšåãé ãºãããããã
ããŒã¿ããŒã¹ã®çš®é¡ãæ§é ãæèããããšãªãããã°ã©ãã³ã°ã§ããŸãã - åé¢ãå®éã«çºè¡ããã SQL æã®æ§ç¯ã¯ Entity Framework ã«å§ããããŸãã
- ãã®ããããã¥ãŒãã³ã°ããæè»ãªããŒã¿ã®åç
§ã»æŽæ°ã課é¡ã«ãªããããã
ããã·ã§ã³ ã¯ãªãã£ã«ã«ãªãšã³ã¿ãŒãã©ã€ãº ã·ã¹ãã éçºã«ã¯é©åããªãããšããããŸãã
è£è¶³ïŒææ°åïŒEF6 ãš EF CoreïŒ: æ¬ããŒãžãæ±ã£ãŠããã®ã¯
**EF6ïŒEntity Framework 6.xïŒ**ã§ãããçŸåšã®äœçœ®ä»ãã¯ä»¥äžã
EF6 EF Core 察象 .NET FrameworkïŒ.NET Core 3.0 以éã§ãåäœïŒ .NETïŒã¯ãã¹ãã©ãããã©ãŒã ïŒ éçº ä¿å®ã®ã¿ïŒæ°æ©èœãªãïŒ çŸè¡ã幎次ã§ã¡ãžã£ãŒæŽæ° EDMX / ãã¶ã€ã ãã ãªã éçºã¹ã¿ã€ã« ã¢ãã« / DB / ã³ãŒã ãã¡ãŒã¹ã Code First ãš scaffold ã®ã¿ åå空é System.Data.EntityMicrosoft.EntityFrameworkCoreæ°èŠéçºã§ã¯ EF Core ãéžã¶ã
æ¬ããŒãžã® EDM / CSDL / MSL / SSDL ã«é¢ããèšè¿°ã¯
EF6 åºæã§ãããEF Core ã«ã¯è©²åœããæŠå¿µãååšããªãã
Entity Framework ã¯ãã€ã³ããŒãã³ã¹ã»ãã¹ãããåé¡ã解決ããããã
ãšã³ãã£ãã£ãå®çŸ©ãããšã³ãã£ãã£çµç±ã§ããŒã¿ããŒã¹ãžã¢ã¯ã»ã¹ããããã®ææ®µãæäŸããæè¡ã
-
æŠå¿µã¢ãã«ã§ãã Entity Data Model(EDM) ãéçºè ãæè»ã«ã¢ããªã³ã°å¯èœã
RDB ã«å¯ŸããŠçŽæ¥ããã°ã©ãã³ã°ãã代ããã«ãEDM ã«å¯ŸããŠããã°ã©ãã³ã°ããã-
ããã«ãããããŒãã«ãšãªããžã§ã¯ãã 1 察 1 ã«å¯Ÿå¿ããã O/R ããããšã¯ç°ãªãã
ãçµåïŒJoinïŒããšãã RDB åºæã®äºæ ã«æ¯ãåãããããšãªãã
ããçŽæçã«å¿ èŠãªæ å ±ãååŸããããšãå¯èœã«ãªãã -
RDB åŽã®ã¹ããŒã倿ŽïŒç¹ã«ããŒãã«ã®åå²/çµ±åã®ãããªå€åïŒã«å¯ŸããŠèæ§ãããã
-
-
Entity 㯠ADO.NET 鿥ç¶åãšåæ§ã«ãå€éå±€ã®ã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåã
ãªããžã§ã¯ããšããŠæž¡ãããšãå¯èœã§ãã DTO(Data Transfer Object) ãšããŠå©çšã§ããã
CSDLãSSDLãããã³ MSL 仿§
https://learn.microsoft.com/ja-jp/dotnet/framework/data/adonet/ef/language-reference/csdl-ssdl-and-msl-specifications
-
æŠå¿µã¹ããŒãå®çŸ©èšèª (CSDL) <---> ãããã³ã°ä»æ§èšèª (MSL) <---> ã¹ã㢠ã¹ããŒãå®çŸ©èšèª (SSDL) ã¯
XML ããŒã¹ã®èšèªã§ãããããæŠå¿µã¢ãã«ãã¢ãã«éã®ãããã³ã°ã
ã¹ãã¬ãŒãž ã¢ãã«ã«ã€ããŠèšè¿°ããã -
Entity Data Model(EDM) ã®å®çŸ©ã¯ãEntity Data Model ãã¶ã€ããŒã«ããã
èšèšæã«ã¢ãã«ãšãããã³ã°ã®æ å ±ã*.edmxãã¡ã€ã«ã«ä¿åããã -
Entity Data Model ãã¶ã€ããŒã¯ããã«ãæã« EDM ãã¡ã€ã«ïŒ
*.edmxïŒã®æ å ±ã䜿çšããŠã
Entity Framework ãå®è¡æã«å¿ èŠãšãã*.csdlã*.ssdlãããã³*.mslãã¡ã€ã«ãäœæããã
CSDLïŒConceptual Schema Definition LanguageïŒæŠå¿µã¹ããŒãå®çŸ©èšèªïŒ
æŠå¿µã¹ããŒãïŒæŠå¿µã¢ãã«ïŒ
- CSDL 仿§
https://learn.microsoft.com/ja-jp/dotnet/framework/data/adonet/ef/language-reference/csdl-specification
MSLïŒMapping Schema LanguageïŒãããã³ã°ã»ã¹ããŒãèšèªïŒ
CSDL ãš SSDLïŒã¢ãã«éïŒã®ãããã³ã°
SSDLïŒStorage Schema Definition LanguageïŒã¹ãã¢ã»ã¹ããŒãå®çŸ©èšèªïŒ
ã¹ãã¬ãŒãžã»ã¹ããŒãïŒã¹ãã¬ãŒãž ã¢ãã«ïŒ
- SSDL 仿§
https://learn.microsoft.com/ja-jp/dotnet/framework/data/adonet/ef/language-reference/ssdl-specification
-
ãšã³ã¿ãŒãã©ã€ãºã§ã¯ã»ãŒãDB ãã¡ãŒã¹ããæ¡çšããã
-
åçŽãªããŒãã«ïŒããŒã¿ã¹ãã¢ïŒãã䜿çšããªã
EUC ãªã©ã®äžçã§ã¯ãã¢ãã«ãã¡ãŒã¹ãããããããå¯èœæ§ãããã
ã¢ãã«ïŒEDMïŒãã DBMS ã®ã¹ããŒããçæããæ¹æ³ã
- é£èŒïŒADO.NET Entity Framework å
¥é ïŒ ïŒ IT
-
第2åãEDM ã«ãããå€å¯Ÿå€é¢ä¿ãš Entity Framework ã§ã®ããŒã¿ã®ååŸïŒä¿å
http://www.atmarkit.co.jp/fdotnet/ef4basic/ef4basic02/ef4basic02_01.html- å€å¯Ÿå€é¢ä¿ã®å®çŸ
- EDM ããããŒã¿ããŒã¹ã®èªåçæ
http://www.atmarkit.co.jp/fdotnet/ef4basic/ef4basic02/ef4basic02_02.html - Entity Framework ã§èªåçæãããã¯ã©ã¹
- Entity Framework ã§ã®ããŒã¿ä¿åïŒååŸãµã³ãã«
-
DBMS ã®ã¹ããŒãããã¢ãã«ïŒEDMïŒãçæããæ¹æ³ã
-
é£èŒïŒADO.NET Entity Framework å ¥é ïŒ ïŒ IT
第4åãããŒã¿ããŒã¹ããã® Entity Data Model çæ
http://www.atmarkit.co.jp/fdotnet/ef4basic/ef4basic04/ef4basic04_01.html- ããŒã¿ããŒã¹ããã® EDM çæ
- ã¹ãã¢ãã»ããã·ãŒãžã£ã®åŒã³åºã
- è€ååã®æŽ»çšïŒãŸãšã
-
ADO.NET Entity Framework 4.1 ã§ç»å Žããæ©èœã
-
Entity ãžã®ããŒã¿æ§é ã®å®çŸ©ãããã®ãŸãŸããŒã¿ããŒã¹ã®ããŒãã«èšèšãšãªãã
-
ASP.NET MVC ã® ModelïŒEntityïŒã§ããŒã¿æ§é ãå®çŸ©ãããšã
ãã®å®çŸ©ã«åŸã£ãŠããŒã¿ããŒã¹ã«ããŒãã«ãäœæãããã - ãœãŒã¹ã³ãŒãã®ã¿ã§å®çµãã
Entity Framework ã® Entity Data Model (EDM) ãªã©ã
æç€ºçã«äœæããå¿ èŠããªããªããããããè¿ éãªéçºãå¯èœãšãªãã
-
ASP.NET MVC ã® ModelïŒEntityïŒã§ããŒã¿æ§é ãå®çŸ©ãããšã
-
åè
- Entity Framework Code First | densan-labs.net
http://densan-labs.net/tech/codefirst/index.html - æ¢åã®ããŒã¿ããŒã¹ã§ EFãã³ãŒãã»ãã¡ãŒã¹ãããäœ¿çš (1/4)ïŒCodeZineïŒã³ãŒããžã³ïŒ
https://codezine.jp/article/detail/5400 - 第5åãPOCO ã«ãããšã³ãã£ãã£ã»ã¯ã©ã¹ ïŒ ïŒ IT
http://www.atmarkit.co.jp/fdotnet/ef4basic/ef4basic05/ef4basic05_03.html- Entity Framework 4 ã§ã³ãŒãã»ãã¡ãŒã¹ãéçº ïŒ ïŒ IT
http://www.atmarkit.co.jp/fdotnet/scottgublog/20100726codefirst/codefirst.html
- Entity Framework 4 ã§ã³ãŒãã»ãã¡ãŒã¹ãéçº ïŒ ïŒ IT
- Entity Framework Code First | densan-labs.net
è£è¶³ïŒææ°åïŒEF Core ã§ã®å¯Ÿå¿é¢ä¿ïŒ: EF Core ã«ã¯
ã¢ãã«ãã¡ãŒã¹ãïŒãã¶ã€ãïŒãç¡ããããéžæè¢ã¯ 2 ã€ã«ãªãã
å ããŒãžã®åºå EF Core ã§ã®å¯Ÿå¿ ã¢ãã«ãã¡ãŒã¹ã ç¡ã DB ãã¡ãŒã¹ã dotnet ef dbcontext scaffoldã§æ¢å DB ãããªããŒã¹ã³ãŒããã¡ãŒã¹ã dotnet ef migrations addâdotnet ef database updateãšã³ã¿ãŒãã©ã€ãºã§ DBA ã DB ãèšèšããå Žåãã
scaffold ã§çæããã³ãŒããèµ·ç¹ã«æã§èª¿æŽããéçšã«ãªãã
ãªããæ¬çªç°å¢ãžã®ã¹ããŒãé©çšã¯database updateãçŽæ¥å©ããã
dotnet ef migrations scriptã§ SQL ãåºåããŠã¬ãã¥ãŒããã®ãå®å šã
-
- ããŒã¿ã®æ¿å
¥ãèªã¿åºããæŽæ°ãåé€ | densan-labs.net
http://densan-labs.net/tech/codefirst/adddelete.html
- ããŒã¿ã®æ¿å
¥ãèªã¿åºããæŽæ°ãåé€ | densan-labs.net
ããã§ã¯ããcontextãã DbContext ãç¶æ¿ããã³ã³ããã¹ããæããŠããã
ãµã³ãã«ããã°ã©ã 次第ã§ãcontext, db, dbContext ãªã©ã®åç§°ã䜿çšãããã
Entity ã¯ä»¥äžã® Entity States ãæã£ãŠããã
-
Unchanged ç¶æ
远跡éå§åŸã«å€æŽãããŠããªãç¶æ -
Added ç¶æ
远å ãããç¶æ ã -
Modified ç¶æ
ç·šéãããç¶æ ã -
Deleted ç¶æ
åé€ãããç¶æ ã -
Detached ç¶æ
远跡ãéå§ãããŠããªãç¶æ
SaveChanges() ã¡ãœãããåŒã³åºããéã«ã
ã³ã¬ãæŽæ°ç³» SQL ã«å€ããŠå®è¡ãããšèšããããçš®ã
RowState + TableAdapter çãªä»çµã¿ã§åäœããŠããã
è£è¶³ïŒå€æŽè¿œè·¡ãšæŽæ°åïŒ: 倿Žè¿œè·¡ã«ããã
SaveChanges()ãçæãã
UPDATEæã«ã¯å€æŽãããããããã£ã®ã¿ãå«ãŸããã
ãã ããAsNoTracking()ã§èªãã ãšã³ãã£ãã£ãã
å¥éå±€ããæ»ã£ãŠããïŒDetached ãªïŒãšã³ãã£ãã£ãUpdate()ããå Žåã¯
å šåãæŽæ°å¯Ÿè±¡ã«ãªãç¹ã«æ³šæã
Web API ã®ããã«ãèªã¿åããšæŽæ°ã§ãªã¯ãšã¹ããåããããæ§æã§ã¯ã
ãã®éããåæå®è¡å¶åŸ¡ïŒåŸè¿°ã®ãã¹ãã¢ããããŒãïŒã«çŽçµããã
è£è¶³ïŒåæå®è¡å¶åŸ¡ïŒ: EF ã«ã¯æ¥œèгçåæå®è¡å¶åŸ¡ã®ä»çµã¿ãããã
æŽæ°ç«¶åãæ€åºã§ããã
- SQL Server:
rowversionåã®åãçšæãã
[Timestamp]屿§ïŒãŸãã¯IsRowVersion()ïŒãä»ãã- ç«¶åæã¯
DbUpdateConcurrencyExceptionãçºçãããããå ¥ããªããšãåŸåã¡ã§ãã¹ãã¢ããããŒããçºçããã
LINQ ã¯é å»¶è©äŸ¡ãªã®ã§ãçµæãå¿ èŠã«ãªããŸã§ã¯ SQL æãçºè¡ãããªãã
ToArray() ã¡ãœããã Load() ã¡ãœããïŒEntity Framework ã®æžå¿µïŒã䜿ããšã
峿å®è¡ãããŠçµæãã¡ã¢ãªã«èµ·ããäºãã§ããã
ãªããžã§ã¯ãåç §ã«ãã SQL ãå®è¡ãããã
using (var context = new XXXXXContext())
{
foreach (var YYYYY in context.YYYYYs)
{
Console.WriteLine(YYYYY.Name);
}
}-
Find()ã¡ãœãã- äž»ããŒã䜿çšããŠæ€çŽ¢ããã
-
DbContextã«ãã£ãã·ã¥ãããã°ããããæ€çŽ¢ããã - ãã£ãã·ã¥ããªã or ãã£ãã·ã¥å ã«ããŒã¿ãç¡ãå ŽåãSQL ã§æ€çŽ¢ããã
-
- äž»ããŒã䜿çšããŠæ€çŽ¢ããã
-
Single()ã¡ãœãã- 0 ä»¶ãè€æ°ä»¶ã®çµæãè¿ã£ãããšã©ãŒãè¿ãã
- DBMS ã® TOP ãã³ããªã©ã䜿çšããïŒ
Select Top 2 * From YYYYYsïŒã®ã§æ§èœã¯ããã
context.YYYYYs.Single(x => x.name == "hogehoge");
-
SingleOrDefault()ã¡ãœãã- ååŸããçµæã 0 ä»¶ã®å Žåãæ¢å®å€ãè¿ãã1 ä»¶ã®å Žåããã®èŠçŽ ãè¿ãã
- ååŸããçµæã 0 ä»¶ or 1 件以å€ã®çµæãè¿ã£ãããšã©ãŒãè¿ãã
- DBMS ã® TOP ãã³ããªã©ã䜿çšããïŒ
Select Top 2 * From YYYYYsïŒã®ã§æ§èœã¯ããã
context.YYYYYs.SingleOrDefault(x => x.name == "hogehoge");
-
,etc.
ç§»è¡ã¡ã¢ïŒæ£èª€ïŒ: å ããŒãžã®
SingleOrDefault()ã®äŸã¯
ã³ãŒããSingle()ã®ãŸãŸã ã£ããããSingleOrDefault()ã«ä¿®æ£ããã
è£è¶³ïŒ
SingleãšFirstã®äœ¿ãåãïŒ: ãäžæã§ããããšã衚æãããããªã
Singleç³»ããå é 1 ä»¶ã§ããããªãFirstç³»ã䜿ãã
Firstç³»ã¯Select Top 1ã«ãªãããã
Singleç³»ïŒTop 2ãåã£ãŠ 2 ä»¶ç®ã®æç¡ã確èªããïŒãã軜ãã
äžææ§ãå¶çŽã§ä¿èšŒãããŠãããªãFirstç³»ã§ååãªããšãå€ãã
- åè
- FirstOrDefault ãšã Last ãªã©åäžèŠçŽ ååŸã® LINQ ã¡ãœãã - Qiita
http://qiita.com/RyotaMurohoshi/items/0d4cf421e0eb4a9b4765- ElementAt / ElementAtOrDefault
- First / FirstOrDefault
- Single / SingleOrDefault
- FirstOrDefault ãšã Last ãªã©åäžèŠçŽ ååŸã® LINQ ã¡ãœãã - Qiita
以äžã®æ§ãªæãã
-
ToArray()ã¡ãœããã§ç¢ºå®ãããçµæã«å¯Ÿã㊠LINQ ãå®è¡ãããvar YYYYYs = context.YYYYYs.ToArray(); YYYYYs.Where(x => x.Name == "hogehoge")
-
Load()ã¡ãœããã§ãã£ãã·ã¥ããåŸã«ã
Localããããã£ã«å¯Ÿã㊠LINQ ãå®è¡ãããcontext.YYYYYs.Load() context.YYYYYs.Local.OrderBy(x => x.Name);
詳ããã¯ãLINQãåç §ã
以äžã®æ§ãªæãã
context.YYYYYs.Where(x => x.Id == "1");
context.YYYYYs.Where(x => x.Name == "hogehoge").ToArray();è£è¶³ïŒ
IQueryableãšIEnumerableã®å¢çïŒ: ãã® 2 ã€ã®ç¯ã®éãã¯
ãã©ãã§ SQL ã«å€æãããããã§ãããæ§èœäžãã£ãšãéèŠãªè«ç¹ã§ããã
IQueryableïŒLINQ to EntitiesïŒ: åŒããªãŒã SQL ã«ç¿»èš³ããã
DB åŽã§çµã蟌ãŸããIEnumerableïŒLINQ to ObjectsïŒ: å ã«å šä»¶ãã¡ã¢ãªã«èªã¿èŸŒã¿ã
ã¢ããªåŽã§çµã蟌ã
ToArray()/ToList()/AsEnumerable()ãæãã æç¹ã§
å¢çãè¶ããããã以äžã¯ããŒãã«å šä»¶ãèªã¿èŸŒãã§ããçµã蟌ãã// NG: å šä»¶ãã§ããããŠããã¡ã¢ãªäžã§ Where var bad = context.YYYYYs.ToArray().Where(x => x.Name == "hogehoge"); // OK: WHERE å¥ãšã㊠SQL ã«ç¿»èš³ããã var good = await context.YYYYYs .Where(x => x.Name == "hogehoge") .ToArrayAsync();
å
šäœçã«å®è¡ããã SQL ããã©ãã¯ããã¯ã¹ã§æ§èœãæèãé£ã
ïŒEntity Framework ã®æžå¿µïŒã
è£è¶³ïŒçºè¡ SQL ãèŠãïŒ: ãã©ãã¯ããã¯ã¹æ§ã¯ã
ãã°ãåºãã°å€§å¹ ã«ç·©åã§ããã
- EF Core:
optionsBuilder.LogTo(Console.WriteLine)ããã³
EnableSensitiveDataLogging()ïŒéçºç°å¢ã®ã¿ïŒ- EF6:
context.Database.Log = Console.Write;- DB åŽ: SQLãããã¡ã€ã©ïŒSQLãã¬ãŒã¹ïŒãæ¡åŒµã€ãã³ã
ïŒSQL Server ã®ãã°ïŒã§å®éã®å®è¡ã確èªããç¹ã« N+1 åé¡ã¯ããã°ãèŠãã°äžç®ã§åããã
é¢é£ãšã³ãã£ãã£ã¯Includeã§ãŸãšããŠååŸããã
using (var context = new XXXXXContext())
{
// YYYYY Entity ã® Statesã
// Unchangedç¶æ
âAddedç¶æ
ãžã
context.YYYYYs.Add(new YYYYY
{
ããããã£å1 = å€1,
ããããã£å2 = å€2,
});
// SaveChangesâAddedç¶æ
ã®
// YYYYY EntityãInsertæã«æ¿ããããã
context.SaveChanges();
}ç§»è¡ã¡ã¢ïŒæ£èª€ïŒ: ã³ã¡ã³ãã®ãUnchanged ç¶æ â Added ç¶æ ãžãã¯ã
æ°èŠçæãã Entity ã¯è¿œè·¡ãããŠããªããã
æ£ããã¯ãDetached ç¶æ â Added ç¶æ ãžãã§ããã
using (var context = new XXXXXContext())
{
var yyyyy = context.YYYYYs.Single(x => x.Name == "hogehoge");
yyyyy.Name = "Aiueo";
context.SaveChanges();
}- Select ---> Delete
using (var context = new XXXXXContext())
{
var yyyyy = context.YYYYYs.Single(x => x.Name == "hogehoge");
context.YYYYYs.Remove(yyyyy);
context.SaveChanges();
}- çŽæ¥ Delete
using (var context = new XXXXXContext())
{
var toRemoveYyyyy = new YYYYY { Id = 1 };
context.YYYYYs.Attach(toRemoveYyyyy);
context.YYYYYs.Remove(toRemoveYyyyy);
context.SaveChanges();
}è£è¶³ïŒææ°åïŒäžæ¬æŽæ°ã»åé€ïŒ: äžèšã¯ãããã
1 è¡ããšã«UPDATE/DELETEãçºè¡ããããã
倧éä»¶æ°ã®ãããã§ã¯ç Žç¶»ããã
EF Core 7 以éã¯ãSQL 1 çºã§åŠçãã API ã远å ãããŠããã// 1 åã® DELETE æã«ãªãïŒSaveChanges ã¯äžèŠïŒ await context.YYYYYs .Where(x => x.CreatedAt < threshold) .ExecuteDeleteAsync(); // 1 åã® UPDATE æã«ãªã await context.YYYYYs .Where(x => x.Name == "hogehoge") .ExecuteUpdateAsync(s => s.SetProperty(x => x.Name, "Aiueo"));ããã«å€§éã®æ¿å ¥ã¯
SqlBulkCopyã䜿ãã»ããæ¡éãã«éãã
- Entity Framework ã®ã圹ç«ã¡èšäºãŸãšã ãã SE ã®ã€ã¶ãã
http://fnya.cocolog-nifty.com/blog/2014/01/entity-frame-13.html
-
LINQãšã®é¢é£ããã§ãã¯ããŠäžããã
-
æžç±è»¢èŒïŒASP.NET MVC 5 å®è·µããã°ã©ãã³ã° - LINQ ãšã¯ïŒïŒ»C# - Build Insider
http://www.buildinsider.net/web/bookaspmvc5/050301 -
é£èŒïŒADO.NET Entity Framework å ¥é ïŒ ïŒ IT
第3åãEntity Framework ã«ãããã¯ãšãªãšæŽæ°
http://www.atmarkit.co.jp/fdotnet/ef4basic/ef4basic03/ef4basic03_02.html -
LINQ to Entities | Microsoft Learn
https://learn.microsoft.com/ja-jp/dotnet/framework/data/adonet/ef/language-reference/linq-to-entitiesLINQ to Entities, QueryBuilder, Entity SQL
- Entity SQL
http://www.atmarkit.co.jp/fdotnet/ef4basic/ef4basic03/ef4basic03_01.html ã®åå - QueryBuilder
http://www.atmarkit.co.jp/fdotnet/ef4basic/ef4basic03/ef4basic03_01.html ã®åŸå - LINQ to Entities
http://www.atmarkit.co.jp/fdotnet/ef4basic/ef4basic03/ef4basic03_02.html
- Entity SQL
-
.NET ã®æ°ããŒã¿ã¢ã¯ã»ã¹ã»ãã¯ãããžãADO.NET Entity Frameworkã ïŒ ïŒ IT
http://www.atmarkit.co.jp/fdotnet/special/vs2008sp1ef/vs2008sp1ef_01.html -
é£èŒïŒADO.NET Entity Framework å ¥é ïŒ ïŒ IT
http://www.atmarkit.co.jp/fdotnet/ef4basic/index/index.html- 第1åãææ° DB ã¢ã¯ã»ã¹ã»ãã¬ãŒã ã¯ãŒã¯ã®åºæ¬çãªèãæ¹
- 第2åãEDM ã«ãããå€å¯Ÿå€é¢ä¿ãš Entity Framework ã§ã®ããŒã¿ã®ååŸïŒä¿å
- 第3åãEntity Framework ã«ãããã¯ãšãªãšæŽæ°
- 第4åãããŒã¿ããŒã¹ããã® Entity Data Model çæ
- 第5åãPOCO ã«ãããšã³ãã£ãã£ã»ã¯ã©ã¹
- 第6åãEF4 ã«ãã N å±€ã¢ãŒããã¯ãã£ãšèªå·±è¿œè·¡ãšã³ãã£ãã£ãåç·šã
- 第7åãEF4 ã«ãã N å±€ã¢ãŒããã¯ãã£ãšèªå·±è¿œè·¡ãšã³ãã£ãã£ãåŸç·šã
-
ãšã³ãã£ã㣠ãã¬ãŒã ã¯ãŒã¯ã®æŠèŠ
https://learn.microsoft.com/ja-jp/dotnet/framework/data/adonet/ef/overview -
ããã©ãŒãã³ã¹ã«é¢ããèæ ®äºé (Entity Framework)
https://learn.microsoft.com/ja-jp/dotnet/framework/data/adonet/ef/performance-considerations
- Entity Framework
https://learn.microsoft.com/ja-jp/ef/
- ããŒã¿ ãã€ã³ã
- DapperãEntity Frameworkãããã³ãã€ããªãã ã¢ããª
- EF Core ã®å€æŽè¿œè·¡ã®åäœ: 倿Žãªãã倿޿žã¿ãããã³è¿œå
- .NET Framework ãš .NET Core ã®äž¡æ¹ã§ã® EF Core ã®å®è¡
- EF Core 1.1: ãæ°ã«å ¥ããããã€ã
- EF Core ãš InMemory ãããã€ããŒã䜿ã£ããã¹ãäœæã®ãã³ã
- DDD ã«æé©ãª EF Core 2.0
- DDD ã«æé©ãª EF Core 2.0 (第 2 éš)
è£è¶³ïŒ
InMemoryãããã€ãã«ã€ããŠïŒ: äžèšèšäºã«ãã
InMemoryãããã€ãã¯ãçŸåšãã¹ãçšéã«æšå¥šãããŠããªãã
ãªã¬ãŒã·ã§ãã« DB ã®å¶çŽïŒäžæå¶çŽãå€éšããŒããã©ã³ã¶ã¯ã·ã§ã³ïŒã
åçŸããªãããããã¹ããéã£ãŠãæ¬çªã§èœã¡ãã
çŸåšã¯ SQLite ã® in-memory ã¢ãŒããã
Testcontainers ã§å® DBMS ãç«ãŠãæ¹åŒãæšå¥šãããŠããã
- é²ã®ããšã - Site Home - MSDN Blogs
- .NET Framework 4.5 ã«ãããããŒã¿ ã¢ã¯ã»ã¹ã®æŠèŠ ãã®1
- .NET Framework 4.5 ã«ãããããŒã¿ ã¢ã¯ã»ã¹ã®æŠèŠ ãã®3 ïœ ADO.NET Entity Framework
- Entity Framework Core 1.0 æ£åŒãªãªãŒã¹ â é²ã®ããšã
Tags: ç§»è¡, .NETéçº, ããŒã¿ã¢ã¯ã»ã¹, ADO.NET, Entity Framework