1
現在、私はExpress.jsでAPIを書いていますが、mongodbのスキーマ/モデルの作成方法に関する多くの例を見てきましたが、MSSQLと同様の解決策があるのかどうか疑問です。私は、私はリストを取ることができるExpress.jsで同様のやり方で行くだろうかmongooseスタイルのスキーマを使用するNode.jsのMSSQL
public class Expense
{
public int employeeId { get; set; }
public string expenseDate { get; set; }
public int taskId { get; set; }
public int expenseTypeId { get; set; }
public int billingCategory { get; set; }
public string notes { get; set; }
public float amount { get; set; }
public string LastUpdatedDate { get; set; }
public int LastUpdatedBy { get; set; }
public string dateSubmitted { get; set; }
public string location { get; set; }
}
:
public void SubmitExpenses(List<Expense> expenses)
{
using (cnxn)
{
cnxn.Open();
for (int i = 0; i < expenses.Count; i++)
{
int employeeId = expenses.ElementAt(i).employeeId;
string expenseDate = expenses.ElementAt(i).expenseDate;
int taskId = expenses.ElementAt(i).taskId;
int expenseTypeId = expenses.ElementAt(i).expenseTypeId;
int billingCategory = expenses.ElementAt(i).billingCategory;
string notes = expenses.ElementAt(i).notes;
float amount = expenses.ElementAt(i).amount;
string lastUpdatedDate = expenses.ElementAt(i).LastUpdatedDate;
int lastUpdatedBy = expenses.ElementAt(i).LastUpdatedBy;
string dateSubmitted = expenses.ElementAt(i).dateSubmitted;
//public void SubmitExpenses(int employeeId, string expenseDate, int taskId, int expenseTypeId, int billingCategory,
// string notes, float amount, string lastUpdatedDate, int lastUpdatedBy, string dateSubmitted)
//{
using (SqlCommand sqlQuery = new SqlCommand("INSERT INTO Expenses " +
"(Employee_ID, Task_ID, Expense_Date, Expense_Type_ID, Billing_Category_ID, " +
"Amount, Notes, Last_Updated_By, Last_Update_Datetime, Date_Submitted, Location) " +
"Values (@employeeId, @taskId, @expenseDate, @expenseTypeId, @billingCategory, @amount, @notes, " +
"@lastUpdatedBy, @lastUpdatedDate, @dateSubmitted, @locationId)", cnxn))
{
sqlQuery.Parameters.Add(new SqlParameter("@employeeId", SqlDbType.Int) { Value = employeeId });
sqlQuery.Parameters.Add(new SqlParameter("@expenseDate", SqlDbType.DateTime) { Value = expenseDate });
sqlQuery.Parameters.Add(new SqlParameter("@taskId", SqlDbType.Int) { Value = taskId });
sqlQuery.Parameters.Add(new SqlParameter("@expenseTypeId", SqlDbType.Int) { Value = expenseTypeId });
sqlQuery.Parameters.Add(new SqlParameter("@billingCategory", SqlDbType.Int) { Value = billingCategory });
sqlQuery.Parameters.Add(new SqlParameter("@notes", SqlDbType.Text) { Value = notes });
sqlQuery.Parameters.Add(new SqlParameter("@amount", SqlDbType.Money) { Value = amount });
sqlQuery.Parameters.Add(new SqlParameter("@lastUpdatedDate", SqlDbType.DateTime) { Value = lastUpdatedDate });
sqlQuery.Parameters.Add(new SqlParameter("@lastUpdatedBy", SqlDbType.Int) { Value = lastUpdatedBy });
sqlQuery.Parameters.Add(new SqlParameter("@dateSubmitted", SqlDbType.DateTime) { Value = dateSubmitted });
sqlQuery.Parameters.Add(new SqlParameter("@locationId", SqlDbType.VarChar) { Value = "" });
sqlQuery.ExecuteNonQuery();
}
}
}
}
そしてExpense.cs
モデル:たとえば、私は、次のC#コントローラのメソッドを持っていますJavaScriptオブジェクトのうち、それらを要素に分解し、パラメータ化して送信することができますか?
何かのような...
app.post('/route/to/api', function (req, res) {
var sql = require('mssql');
sql.connect("mssql://user:[email protected]/Northwind").then(function() {
console.log('connected');
for (var i = 0; i < req.length; i++) {
new sql.Request()
.input('input_param', sql.VARCHAR, req[i]['PropertyName'])
.query('INSERT INTO Table VALUES (@input_param)')
.then(function (recordset) {
console.log(recordset);
})
.catch(function (err) {
console.log(err);
});
}
}).catch(function (err) {
console.log(err);
});
});
何かアドバイスをいただければ幸いだろう!
モデルを定義し、 'mssql 'でそれを使用することができますか、それとも' sequelize'をすべてのものに対して単独で使用することをお勧めしますか? – WakaChewbacca
Sequelizeは、.NETのEntity FrameworksのようなORMです。 CRUD用のすべてのSQLをバックグラウンドで記述します。あなたが私たちにmssqlして、SQL出力が続かないことを望むなら、あなたはいつも独自のリポジトリモデルを書くことができますが、後で続けるとその努力をしていくのです。 – RedJandal
申し訳ありません、私はそれに渦を立てます。ありがとう! – WakaChewbacca