哪一个最好是在数据库中插入一行?

时间:2012-06-29 14:07:55

标签: c# asp.net database entity-framework

很长一段时间我一直在做以下事情:

using(var db = new MainContext())
{
    // Create license issue record
    var n = new tblStoreLicenseIssue
    {
        Comment = comment,
        EmailAddress = email,
        Hash = mangled2,
        LicensedTo = name,
        Timestamp = unixTime,
        ValidClaimID = validClaimID
    };

    db.tblStoreLicenseIssues.InsertOnSubmit(n);
    db.SubmitChanges();
}

但我想知道这种方法是否具有任何优势:

var n = new tblStoreLicenseIssue
{
    Comment = comment,
    EmailAddress = email,
    Hash = mangled2,
    LicensedTo = name,
    Timestamp = unixTime,
    ValidClaimID = validClaimID
};

using(var db = new MainContext())
{
    db.tblStoreLicenseIssues.InsertOnSubmit(n);
    db.SubmitChanges();
}

哪种方法被认为是最佳做法,为什么?

2 个答案:

答案 0 :(得分:1)

我会使用后者 - 因为创建对象不使用DB上下文,所以它不必位于using构造中。

答案 1 :(得分:1)

第二种方法提供的唯一优势是,在构造MainContext失败的情况下,您将避免构造和处置tblStoreLicenseIssue的实例。除此之外,这两个片段是相同的。