2011-09-20 6 views
0

여기 내 문제가 있습니다.동적 연결 문자열 (EF4 포함), 메타 데이터 경로가 유효하지 않습니다.

내 Entity Framework 컨텍스트에 동적 연결 문자열을 사용합니다. | ~/빈/모델/DBModel.ssdl |

builder.Metadata = "메타 데이터 = ~/빈/모델/DBModel.csdl :

//In Web Config 

add key="DataSource" value="WIN-QBRH0MJL8IT\ISS" /> 


//In my EntityFactory.cs 
public static DBEntities GetEntity() 
     { 
      var scsb = new SqlConnectionStringBuilder(); 

      scsb.DataSource = ConfigurationManager.AppSettings["DataSource"]; 

      scsb.InitialCatalog = "db1"; 
      scsb.MultipleActiveResultSets = true; 
      scsb.IntegratedSecurity = true; 
      if (HttpContext.Current.Session["DBName"] == null) 
      { 
       HttpContext.Current.Response.Redirect("/Account/Step1"); 
      } 
      else 
      { 
       scsb.InitialCatalog = HttpContext.Current.Session["DBName"].ToString(); 
      } 

      var builder = new EntityConnectionStringBuilder(); 
      builder.Metadata = "metadata=~/bin/Models/DBModel.csdl|~/bin/Models/DBModel.ssdl|~/bin/Models/DBModel.msl"; 
      builder.Provider = "System.Data.SqlClient"; 
      builder.ProviderConnectionString = scsb.ConnectionString; 
      DBEntities db = new DBEntities(builder.ConnectionString); 
      return db; 
     } 

나는 문제가이 줄을 알고 ~/bin/Models/DBModel.msl ";

나는 확인하고 CSDL, SSDL, MSL은 /mvcinfosite/bin/Models/.csdl,.ssdl,.msl

내 edmx의 구성은에 있습니다
메타 데이터 아티팩트 처리 : 복사 출력 디렉토리에

여기에 지정된 메타 데이터 경로가 유효하지 않은 전체 오류

에게 있습니다. 유효한 경로가 포함 된 리소스를

감사

을 식별하는 기존 디렉토리, 확장 '.csdl', '.ssdl'과 기존 파일, 또는 '.msl', 또는 URI 중 하나 해야합니다

답변

1

~자를 삭제하고 앱 루트에 유효한 상대 경로를 사용하십시오. ASP.NET 응용 프로그램에서 사용되는이 특수 문자로는 작업 할 수 없다고 생각합니다.

관련 문제