2

LINQ を使用して既存のレコードを更新する方法についていくつかの調査を行ってきましたが、運がありません。これは私が作成した方法です - intellisense はdb.SubmitChanges().

public void updateRestaurant(int RestID, int HoursID, string Web, string Desc)
{
    RestaurantsEntities db = new RestaurantsEntities();
    RESTAURANT restDetails = (from RESTAURANT in db.RESTAURANTs
                                    where RESTAURANT.REST_ID == RestID
                                    select RESTAURANT).Single();
    restDetails.HOURS_ID = HoursID;
    restDetails.REST_WEBSITE = Web;
    restDetails.REST_DESC = Desc;

    db.SubmitChanges();
}
4

2 に答える 2

4

使ってみてdb.SaveChanges();

    public void updateRestaurant(int RestID, int HoursID, string Web, string Desc)
    {
        RestaurantsEntities db = new RestaurantsEntities();
        RESTAURANT restDetails = (from RESTAURANT in db.RESTAURANTs
                                        where RESTAURANT.REST_ID == RestID
                                        select RESTAURANT).Single();
        restDetails.HOURS_ID = HoursID;
        restDetails.REST_WEBSITE = Web;
        restDetails.REST_DESC = Desc;
        db.SaveChanges();
    }
于 2012-05-06T23:50:28.297 に答える
0

リンク グラフでオブジェクトのインスタンスを作成します。

これは正しくありません。オブジェクト コンテキストのインスタンスを作成する必要があります。これは、linq グラフのファイル名で始まり、DataContext で終わります。たとえば、リンク ファイルが myDb という名前の場合、コンテキスト名は myDbDataContext になります。

RestaurantsEntities db = new RestaurantsEntities();
RESTAURANT restDetails = db.RESTAURANTs.single(c=>c.REST_ID == RestID);
restDetails.HOURS_ID = HoursID;
restDetails.REST_WEBSITE = Web;
restDetails.REST_DESC = Desc;
db.SubmitChanges();

これは、コンテキスト内のオブジェクトが RESTAURANT と呼ばれることを前提としています。

コンテキストを使用して、挿入、更新、および削除するものを管理し、同時に関係を維持できるようにする必要があります。オブジェクトのインスタンスを作成して、それらをコンテキストに適用することはできません。それらはコンテキストを介して作成する必要があります。

コメントと更新への返信:
私は単純に考えていません。コードを更新しましたが、役に立ちません。私はあなたがすべてを正しくやっていると確信しています

この質問 とこの投稿を見てください

更新
あなたのクエリはあなたに問題を引き起こしていると思います。コンテキストから切り離されています。上記で提供したlinqコードを試してください。

于 2012-05-06T22:47:34.573 に答える