【SQL Server】開発環境構築(ER図作成にSSMSを使用)
◆手順
1.edmxファイルをダブルクリック。
2.モデルブラウザの空白部分を右クリックし、[データベースからモデルを更新]
3.「完了」ボタンを押下。
4. 変更されたことを確認(下図では生年月日が増えた)し、Ctrl+Sで保存。
5.以下が表示された場合は、「すべてに適用」ボタン押下。
6.生成されたコードも生年月日が増えている。
namespace WpfApplication1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
using (var ctx = new DB_EMPLOYEESEntities())
{
using (var tran = ctx.Database.BeginTransaction())
{
ctx.T_部署.Add(new T_部署() { 部署ID = 1, 部署名 = "開発1" });
ctx.T_社員.Add(new T_社員() { 社員ID = 1, 姓 = "名無し", 名 = "太郎", 所属部署ID = 1 });
ctx.SaveChanges();
tran.Commit();
}
var ret = (from shain in ctx.T_社員
join bu in ctx.T_部署
on shain.所属部署ID equals bu.部署ID
select new { shain, bu }).First();
// Namespace==Systemは、外部参照などを表示しないようにプリミティブとstringのみにフィルタ
// しっくりこないが…。
Func<object, List<string>> trans = o =>
( from ps in o.GetType().GetProperties()
where ps.PropertyType.Namespace == "System"
select ps.Name + ":" + ps.GetValue(o, null)).ToList();
MessageBox.Show(
string.Join(",", trans(ret.bu )) + Environment.NewLine +
string.Join(",", trans(ret.shain)));
}
}
}
}














using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace TestDriver
{
class Program
{
static void Main(string[] args)
{
Assembly asm = Assembly.Load(new AssemblyName("Tmp"));
Type t = asm.GetType("Tmp.Program");
System.Reflection.MethodInfo minfo = t.GetMethod("Main",
BindingFlags.Static | BindingFlags.NonPublic);
minfo.Invoke(minfo, new object[] { new string[] { "<tmp></tmp>" } });
}
}
}
using System;
using System.Diagnostics;
namespace TestDriver
{
class Program
{
static void Main(string[] args)
{
#if DEBUG
string exePath = @"..\..\..\Tmp\bin\debug\Tmp.exe";
#elif RELEASE
string exePath = @"..\..\..\Tmp\bin\release\Tmp.exe";
#else
#error Please make target configuration!!
#endif
Process p = Process.Start(exePath, "<tmp></tmp>");
}
}
}