Comments (4)
Hello @neoGeneva ,
Thank you for reporting, we will look at it today.
We will change all backslashes
for foward slashes
which seem to be the standard everywhere.
Best Regards,
Jonathan
from entityframework-classic.
Hey, thanks for that.
I managed to get things working locally by writing my own implementation of UseDatabaseFirstManager.Execute()
, note that I'm calling OutputXml()
twice, once with the full path and a second time with just the name because after fixing the slashes (which solved my initial problem) I started getting The given key 'DataModel.csdl' was not present in the dictionary.
when callingDbContextExtensions.UpdateFromQuery()
Here's my working hack:
namespace Z.EntityFramework.Classic.Hacks
{
// THIS IS A HACK TO DEAL WITH Z.EntityFramework.Classic ASSUMING WINDOWS PATHS
internal class UseDatabaseFirstManager
{
internal static void Execute(string modelName)
{
var path = Path.Combine(Directory.GetCurrentDirectory(), modelName);
var fileInfo = new FileInfo(path);
using (StreamReader reader = new StreamReader(fileInfo.FullName))
{
// GET model element
XmlElement conceptualSchemaElement;
XmlElement mappingElement;
XmlElement storageSchemaElement;
string processingValue;
EntityDesignerUtils.ExtractConceptualMappingAndStorageNodes(reader, out conceptualSchemaElement, out mappingElement, out storageSchemaElement, out processingValue);
// SAVE model element
OutputXml(Path.ChangeExtension(fileInfo.FullName, "csdl"), conceptualSchemaElement);
OutputXml(Path.ChangeExtension(fileInfo.Name, "csdl"), conceptualSchemaElement);
OutputXml(Path.ChangeExtension(fileInfo.FullName, "msl"), mappingElement);
OutputXml(Path.ChangeExtension(fileInfo.Name, "msl"), mappingElement);
OutputXml(Path.ChangeExtension(fileInfo.FullName, "ssdl"), storageSchemaElement);
OutputXml(Path.ChangeExtension(fileInfo.Name, "ssdl"), storageSchemaElement);
}
}
private static void OutputXml(string outputPath, XmlElement xmlElement)
{
var type = Type.GetType("Z.EntityFramework.Classic.UseDatabaseFirstManager, Z.EntityFramework.Classic, Version=7.0.0.0, Culture=neutral, PublicKeyToken=afc61983f100d280");
var method = type.GetMethod("OutputXml", BindingFlags.Static | BindingFlags.NonPublic);
method.Invoke(null, new object[] { outputPath, xmlElement });
}
}
internal static class EntityDesignerUtils
{
internal static void ExtractConceptualMappingAndStorageNodes(StreamReader edmxInputStream, out XmlElement conceptualSchemaNode, out XmlElement mappingNode, out XmlElement storageSchemaNode, out string metadataArtifactProcessingValue)
{
var type = Type.GetType("Z.EntityFramework.Classic.EntityDesignerUtils, Z.EntityFramework.Classic, Version=7.0.0.0, Culture=neutral, PublicKeyToken=afc61983f100d280");
var method = type.GetMethod("ExtractConceptualMappingAndStorageNodes", BindingFlags.Static | BindingFlags.NonPublic);
var parameters = new object[] { edmxInputStream, null, null, null, null };
method.Invoke(null, parameters);
conceptualSchemaNode = (XmlElement)parameters[1];
mappingNode = (XmlElement)parameters[2];
storageSchemaNode = (XmlElement)parameters[3];
metadataArtifactProcessingValue = (string)parameters[4];
}
}
}
from entityframework-classic.
Nice hack ;)
Unfortunately, EFE has been built with windows
path as well otherwise your fix would have worked great.
A new version v7.0.15 has been released.
We should now replace all \
by /
to support all systems.
Let me know if that is working correctly on your side.
Best Regards,
Jonathan
from entityframework-classic.
Thanks! I've got the latest version and it works great, so thanks again!
from entityframework-classic.
Related Issues (20)
- Type not supported yet (LazyType): sdo_geometry HOT 11
- "Cannot bind argument to parameter 'Path' because it is an empty string" when running Add-Migration HOT 9
- Include with InvalidCastException exception HOT 4
- IDbContext HOT 8
- EF6 is available for .NET Core 3+ HOT 1
- HasNoKey and Constructor with Parameters HOT 5
- Make DbMigrator constructors public HOT 4
- Link to entityframework.net HOT 3
- Count() inside string expression in Execute method HOT 4
- Creating new array inside expression string - Execute extension method HOT 8
- Error when using UpdateFromQuery on an expanded query (Linqkit) HOT 3
- DbMigrator - Problems with existing migrations HOT 6
- HierarchyId.GetAncestor method raise an unexpected exception HOT 7
- Current Values are not reset when using SoftDelete HOT 6
- this.Configuration not availalbe in .net core 6 for soft delete HOT 3
- EDMX - Unable to cast object of type ObjectQuery to DbQuery in .Include() HOT 19
- The object cannot be deleted because it was not found in the ObjectStateManager HOT 1
- IDbCommandInterceptor called multiple times on queries with .IncludeOptimizedByPath() HOT 2
- add new provider Microsoft.Data.SqlClient HOT 3
- Unable to load the specified metadata resource. HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from entityframework-classic.