2

これは、ビュー テーブルを持つ既存のデータベース用です。ビュー テーブルを一覧表示しようとしましたが、アクションで次のエラー メッセージが表示されました。

CREATE DATABASE permission denied in database 'master'.

アクセスするビュー テーブルの名前: SomeTable

これをデータベース (ServerA_dev_alpha_custom) で実行すると、次のようになります。

sp_helptext 'SomeTable'

あなたはこれを得るでしょう:

 CREATE VIEW dbo.[SomeTable] AS  SELECT * FROM ServerA_dev_alpha.dbo.[SomeTable]

モデルは次のとおりです。

public class SomeTable
{
    [Key]
    public virtual string SomeTableid  { set; get; }
    public virtual string name  { set; get; }
    public virtual string formvalue  { set; get; }
    public virtual string status  { set; get; }
    public virtual DateTime CreateDate { set; get; }    
}

クラス名:

public class SomeDB: DbContext

接続文字列名と正確に一致します。

    <add name ="SomeDB"
         connectionString ="data source=ServerA\DBSome; integrated Security=SSPI; initial catalog=ServerA_dev_alpha_custom"
         providerName="System.Data.SqlClient"/>

モデルの作成中にエラーが見つかりました:

SomeDB _db = new SomeDB();

var model = (from c in _db.SomeTable
  orderby c.CreateDate descending
  select c).Take(20);

テーブルが定義されている場所を指すように接続文字列を変更すると、 ServerA_dev_alpha (データベース) が機能します。

何か案は?

4

2 に答える 2

1

イニシャライザをnullに設定している既存のデータベースがある場合でも、次のように機能します。

Database.SetInitializer<SomeDB>(null);

2番; テーブル名へのマッピングを強制することでうまくいきました。

modelBuilder.Entity<SomeTable>()
.ToTable("SomeTable");
于 2012-06-27T03:38:13.403 に答える