Summary: This document provides basic information about the extension providing Entity Framework support for C# and VB.NET
Extension ID
com.castsoftware.entity
What's new?
See Entity Framework 1.4 - Release Notes for more information.
Description
This extension provides support for Entity Framework. The calculation of Automated Function Points for your .NET analyses will be supplemented through the creation of new objects and links specific to Entity Framework framework that will link back to objects/links produced by the base .NET analyzer.
In what situation should you install this extension?
If your .NET application contains Entity Framework source code and you want to view these object types and their links, then you should install this extension. More specifically the extension will identify:
- "use" links from Entity Framework objects to participating Database tables
- "rely on" links from C#/VB.NET Classes to Entity Wrapper objects
Technology support
Entity Framework
Entity Framework is delivered with the .NET Framework. Therefore the following .NET frameworks are supported by this extension:
Version | Supported |
---|---|
3.0 and above |
Version | Supported |
---|---|
2.x | |
1.x |
Supported Annotations in code-first
'System.Data.Entity.Core.Objects.DataClasses.EdmEntityTypeAttribute' 'System.Data.Entity.Core.Objects.DataClasses.EdmTypeAttribute.Name' 'System.Data.Linq.EntityMapping.TableAttribute' 'System.Data.Objects.DataClasses.EdmEntityTypeAttribute' 'System.Data.Objects.DataClasses.EdmTypeAttribute.Name' 'System.ComponentModel.DataAnnotations.TableAttribute' 'System.ComponentModel.DataAnnotations.Schema.TableAttribute' 'System.ComponentModel.DataAnnotations.Schema.NotMapped' 'System.ComponentModel.DataAnnotations.Schema.NotMappedAttribute' 'System.ComponentModel.DataAnnotations.NotMappedAttribute'
Supported methods in fluent api
Microsoft.EntityFrameworkCore.ModelBuilder.Entity<TEntityType>() Microsoft.EntityFrameworkCore.ModelBuilder.Conventions.Remove<TConvention>() Microsoft.EntityFrameworkCore.DbContext.OnModelCreating( ModelBuilder modelBuilder ) System.Data.Entity.DbModelBuilder.Entity<TEntityType>() System.Data.Entity.DbModelBuilder.Conventions.Remove<TConvention>() System.Data.Entity.DbContext.OnModelCreating( DbModelBuilder modelBuilder ) System.Data.Entity.ModelConfiguration.EntityTypeConfiguration<TEntityType>.ToTable(String)
Supported tags in .edmx file
<edmx:StorageModels> <EntityType> <Property> </Property> </EntityType> <Function> </Function> </edmx:StorageModels> <edmx:ConceptualModels> <EntityType> <Property> </Property> </EntityType> <FunctionImport> </FunctionImport> </edmx:ConceptualModels> <edmx:Mappings> <MappingFragment> <ScalarProperty> </ScalarProperty> </MappingFragment> <FunctionImportMapping> </FunctionImportMapping> </edmx:Mappings>
Function Point, Quality and Sizing support
- Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
- Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
Function Points (transactions) | |
---|---|
Quality and Sizing |
CAST AIP compatibility
CAST AIP release | Supported | Supported Technology |
---|---|---|
8.3.x | C# and VB.NET | |
8.2.x | C# and VB.NET |
Supported DBMS servers
This extension is compatible with the following DBMS servers:
DBMS | Supported |
---|---|
CSS/PostgreSQL | |
Oracle | |
Microsoft SQL Server |
Prerequisites
An installation of any compatible release of CAST AIP (see table above) |
Download and installation instructions
The extension will not be automatically downloaded and installed in CAST Console. If you need to use it, should manually install the extension using the Application - Extensions interface:
CAST Transaction Configuration Center (TCC) configuration
In Entity Framework ≥ 1.1, if you are using the extension with CAST AIP ≥ 8.3.x, a set of Entity specific items are now automatically imported when the extension is installed. These items will be available in the CAST Transaction Configuration Center (click to enlarge):
Manual import action for CAST AIP ≤ 8.2.x (optional)
What results can you expect?
Once the analysis/snapshot generation has completed, you can view the results in the normal manner. The following objects and links will be displayed in CAST Enlighten:
Objects
Icon | Object type |
---|---|
Entity Wrapper | |
Conceptual Model | |
Conceptual Class | |
Conceptual Property | |
Database Object | |
Mapping Model | |
Mapping Class | |
Mapping Property | |
Storage Model | |
Storage Model Table | |
Storage Model Property | |
Conceptual Function | |
Mapping Function | |
Storage Function |
Links
Source | Link type | Target | Example |
---|---|---|---|
Public C#/VB.NET class | Rely on | Entity object | Because CAST cannot be absolutely certain that the C#/VB.NET class is "entity associated", these rely-on links will always be flagged as "dynamic" and will therefore always appear in the Dynamic Link Manager for review. |
Entity object | Use | Database table | |
Class property get/set | Call | Conceptual property | |
Conceptual property | Call | Storage Model Property via Mappping Property | |
Storage Model Property | Use | Database table | |
Conceptual Function | Call | Storage Function via Mapping Function |
Limitations
In this section we list the most significant functional limitations that may affect the analysis of applications using Entity Framework:
- Analyzing the participating database tables is mandatory for the extension to work correctly.
- No support for links between LINQ and SQL objects
- Entity Framework objects are not correctly presented in the CAST dashboards
- Enum Collections are not supported.
- DBContexts are not supported.
- The table name and DbSet name should be in same case. Link to Table not formed if table name and DbSet name are in different case.