Varlık kullanırken MetadataException Çerçevesinde Varlık Bağlantısı
Bu kod:
using (EntityConnection conn = new EntityConnection("name=ELSCommonEntities"))
{
conn.Open();
}
Bana aşağıdaki hata verir:
Test yöntemi BEĞENMİYORSAN.Hizmet.İş.İntegrationTest.Taban.ServiceBaseİntegrationTest.StartLoggingTestMethod özel durum gönderdi: Sistem.Veri.MetadataException: belirtilen meta veri kaynağı.. . Yüklenemiyor
Aşağıdaki yığın izleme:
System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.LoadResources(String assemblyName, String resourceName, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)
System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)
System.Data.Metadata.Edm.MetadataArtifactLoader.Create(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver)
System.Data.EntityClient.EntityConnection.SplitPaths(String paths)
System.Data.EntityClient.EntityConnection.GetMetadataWorkspace(Boolean initializeAllCollections)
System.Data.EntityClient.EntityConnection.InitializeMetadata(DbConnection newConnection, DbConnection originalConnection, Boolean closeOriginalConnectionOnFailure)
System.Data.EntityClient.EntityConnection.Open()
ELS.Service.Business.Base.ServiceBase.StartLogging(String userWindowsLogon) in C:\C-TOM\ELS-RELEASE1\ELS.Service.Business\Base\ServiceBase.cs: line 98
ELS.Service.Business.IntegrationTest.Base.ServiceBaseIntegrationTest.StartLoggingTestMethod() in C:\C-TOM\ELS-RELEASE1\ELS.Service.Business.IntegrationTest\Base\ServiceBaseIntegrationTest.cs: line 65
Aynı bağlantı dizesini kullanır: ancak, bu kod
using (ELSCommonEntities db = new ELSCommonEntities())
{
var res = from c in db.Logging
select c;
int i = res.Count();
}
Bir hata vermez.
Bağlantı dizesi
<add name="ELSCommonEntities" connectionString="metadata=res://*/Common.CommonModel.csdl|res://*/Common.CommonModel.ssdl|res://*/Common.CommonModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=els5_demo;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
Ayrıca reflektör dll açıldı ve meta verileri iyi görünüyor.
Teşekkürler
Şiraz
CEVAP
Sorunu buldum.
Standart meta dize bu gibi görünüyor:
metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl
Ve bu çoğu durumda gayet iyi çalışıyor. Ancak, bazı (benimki de dahil) Varlık Çerçevesi karıştı ve bakmak için hangi yolu bilmiyor. Bu nedenle, meta veri dizesini değiştirin:
metadata=res://nameOfDll/Model.csdl|res://nameOfDll/Model.ssdl|res://nameOfDll/Model.msl
Ve bunu başaracağız. Doğru yolda bana bu link,
http://itstu.blogspot.com/2008/07/to-load-specified-metadata-resource.html
Oposite sorun vardı, birim test işe yaramadı, ama hizmetinde çalışmış olsa da.
Nasıl kullanıyorum ne söyleyebilirim k...
Bir derneğin asıl son Varlık çerçevesi...
Varlık çerçevesi varlıklar içinde yapı...
Hazırda Beklet - Çağlayan ile Bir kole...
Neden Rails4 destek "varlık"...