SORU
2 Temmuz 2009, PERŞEMBE


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
3 Temmuz 2009, Cuma


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • humanHardDrive

    humanHardDri

    16 Mart 2011