実践してasp.net mvcを学ぼうとしています。そこで、asp.net mvc とエンティティ フレームワークを使用して SQL サーバーにアクセスする非常に小さな Web アプリケーションから始めました。
SQL Server localdb に 1 つのテーブルを作成しました。
USE Ourlifestory ;
GO
create table staticlocations(
LocationID int primary key,
LocationName varchar(30),
Tripdate datetime,
Locationimage image)
以下は接続文字列です
<add name="OurLifeStoryDBContext" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDB)\v11.0; Initial Catalog=Ourlifesotry; Integrated Security=True;" />
DBContext クラス:
public class OurLifeStoryDBContext : DbContext
{
public OurLifeStoryDBContext()
: base("name=OurLifeStoryDBContext")
{
}
public DbSet<StaticLocations> Location { get; set; }
}
1 つのテーブルのモデル クラス:
[Table("staticlocations")]
public class StaticLocations
{
[Key]
[Column(Order = 1)]
public int LocationID { get; set; }
[Column(Order = 2)]
public string LocationName { get; set; }
[Column(Order = 3)]
public DateTime Tripdate { get; set; }
//[Column(TypeName="image")]
//public byte[] LocationImage { get; set; }
}
この dbcontext にアクセスするコントローラー アクション メソッド:
public ActionResult GetLocationDetails(int locationID)
{
var dbContext = new OurLifeStoryDBContext();
var location = dbContext.Location.ToList();
return View("_GetLocationDetails");
}
しかし、以下の行の上記のアクションメソッドでは、
var ロケーション = dbContext.Location.ToList();
データベースに挿入ステートメントを使用して手動で挿入したレコードが 1 つありますが、レコードはゼロです。
ここで私が見逃しているものはありますか?
何も返されなかった理由は次のとおりです。接続文字列にタイプミスがありました。
Initial Catalog=Ourlifesotry;
接続文字列には
Initial Catalog=Ourlifestory;
なぜ「エラー」も表示もされなかったのですか?
これは、データベース名のスペルが間違っているかどうかを Entity Framework が検出できないためです。わかっている限り、データベースは「スペルミス」と呼ばれる可能性があります。
また、指定された名前の既存のデータベースがない場合、エラー値/警告の代わりに何も返しません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加