を提出していません。LINQは私が次のコマンドを発行していますSQL</p> <p>にC#とLINQを使用しています変更
記事テーブルはまさにこのSQLを使用して作成されました:私はでSubmitChangesを呼び出し、時計にthis.AppManager.DB.GetChangeSet();
をチェックする直前にbreakpoingを設定した場合
CREATE TABLE forum.Posts (
PostID bigint NOT NULL IDENTITY,
ThreadID bigint NOT NULL,
ResponseToPostID bigint NULL,
UserID bigint NOT NULL,
Title varchar(60) NOT NULL,
[Text] text NOT NULL,
CreateDate datetime NOT NULL,
ModifyDate datetime NOT NULL,
ModifyUserID bigint NULL,
CONSTRAINT PK_Posts PRIMARY KEY CLUSTERED (PostID ASC)
)
GO
ALTER TABLE forum.Posts
WITH CHECK
ADD CONSTRAINT FK_Posts_Threads
FOREIGN KEY (ThreadID)
REFERENCES forum.Threads (ThreadID)
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE forum.Posts
WITH CHECK
ADD CONSTRAINT FK_Posts_Users
FOREIGN KEY (UserID)
REFERENCES dbo.Users (UserID)
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE forum.Posts
WITH CHECK
ADD CONSTRAINT FK_Posts_ModifyUsers
FOREIGN KEY (ModifyUserID)
REFERENCES dbo.Users (UserID)
ON UPDATE NO ACTION
ON DELETE NO ACTION
GO
そう、それは言う:{挿入:0、アップデート: 0、削除:0}
明らかにそうではありません。
私の生成Postオブジェクトは、(約)次のようになります。
[Column(Storage="_PostID", AutoSync=AutoSync.OnInsert, DbType="BigInt NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
public long PostID[...]
[Column(Storage="_ThreadID", DbType="BigInt NOT NULL")]
public long ThreadID[...]
[Column(Storage="_ResponseToPostID", DbType="BigInt")]
public System.Nullable<long> ResponseToPostID[...]
[Column(Storage="_UserID", DbType="BigInt NOT NULL")]
public long UserID[...]
[Column(Storage="_Title", DbType="VarChar(60) NOT NULL", CanBeNull=false)]
public string Title[...]
[Column(Storage="_Text", DbType="Text NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
public string Text[...]
[Column(Storage="_CreateDate", DbType="DateTime NOT NULL")]
public System.DateTime CreateDate[...]
[Column(Storage="_ModifyDate", DbType="DateTime NOT NULL")]
public System.DateTime ModifyDate[...]
[Column(Storage="_ModifyUserID", DbType="BigInt")]
public System.Nullable<long> ModifyUserID[...]
[Association(Name="User_Post", Storage="_User", ThisKey="ModifyUserID", OtherKey="UserID", IsForeignKey=true)]
public User ModifyUser[...]
[Association(Name="User_Post1", Storage="_User1", ThisKey="UserID", OtherKey="UserID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
public User User[...]
[Association(Name="Thread_Post", Storage="_Thread", ThisKey="ThreadID", OtherKey="ThreadID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
public Thread Thread[...]
そして、私のベースのコントローラで:
protected LanLordzApplicationManager AppManager
{
get
{
return (LanLordzApplicationManager)(Session["Application"] ?? new LanLordzApplicationManager(Server.MapPath("~/")));
}
}
protected User CurrentUser
{
get
{
if (Session["UserID"] == null)
{
return null;
}
else
{
return this.AppManager.GetUserByUserID((long)Session["UserID"]);
}
}
set
{
Session["UserID"] = value.UserID;
}
}
// In LanLordzAppManager:
public LanLordzDataContext DB
{
get
{
return this.db;
}
}
任意のアイデアを間違って何が起こっているかのよう?
あなたは正しいです。私はどうしてそんなに盲目的になりますか?ありがとう、私はそれがショートカットを使用するために得るものだと思います。 –