次のように、MachineRecordにGroupRecordIDを含める必要があります。
MachineRecord
ID
名
番号
GroupRecord
GroupRecord
ID
名
私が試したこと:
public virtual GroupRecord GroupRecord { get; set; }
モデルaのプロパティとデータベースの列名を作成しようとしましたが、どういうわけかうまくいきません。プロパティに名前とテーブルの列を付けるなどGroupRecord_Id
、他の方法を試しましたが、すべて結果が得られませんでした。GroupRecordId
GroupRecord
したがって、問題は、これを機能させてMachineRecordテーブルにGroupRecordIDが含まれるようにする方法です。
Machine.cs
namespace PowerAll.Voorraad.Models
{
public class MachineRecord
{
public virtual int Id { get; set; }
public virtual int MachineNumber { get; set; }
public virtual string Title { get; set; }
public virtual string Description1 { get; set; }
public virtual string Description2 { get; set; }
public virtual string Description3 { get; set; }
public virtual string Description4 { get; set; }
public virtual string Description5 { get; set; }
public virtual string Description6 { get; set; }
public virtual string SerialNumber { get; set; }
public virtual GroupRecord GroupRecord { get; set; }
public virtual char PriceType { get; set; }
public virtual decimal Price { get; set; }
public virtual int Year { get; set; }
}
}
Group.cs
namespace PowerAll.Voorraad.Models
{
public class GroupRecord
{
public virtual int Id { get; set; }
public virtual string GroupName { get; set; }
}
}
Migrations.cs
namespace PowerAll.Voorraad
{
public class Migrations : DataMigrationImpl
{
public int Create()
{
SchemaBuilder.CreateTable("GroupRecord", table => table
.Column<int>("Id", column => column.PrimaryKey().Identity())
.Column<string>("GroupName", column => column.WithLength(100))
);
SchemaBuilder.CreateTable("MachineRecord", table => table
.Column<int>("Id", column => column.PrimaryKey().Identity())
.Column<int>("MachineNumber", column => column.NotNull())
.Column<string>("Title", column => column.NotNull().WithLength(40))
.Column<string>("Description1", column => column.WithLength(70))
.Column<string>("Description2", column => column.WithLength(70))
.Column<string>("Description3", column => column.WithLength(70))
.Column<string>("Description4", column => column.WithLength(70))
.Column<string>("Description5", column => column.WithLength(70))
.Column<string>("Description6", column => column.WithLength(70))
.Column<string>("SerialNumber", column => column.WithLength(20))
.Column<int>("GroupRecord_id", column => column.NotNull())
.Column<char>("PriceType", column => column.NotNull().WithLength(1))
.Column<decimal>("Price", column => column.NotNull())
.Column<int>("Year", column => column.WithLength(4))
);
// Return the version that this feature will be after this method completes
return 1;
}
}
}
MachineController.cs
namespace PowerAll.Voorraad.Controllers
{
[Themed]
public class MachineController : Controller
{
private readonly IRepository<MachineRecord> machineRecords;
public MachineController(IRepository<MachineRecord> MachineRecords) {
machineRecords = MachineRecords;
}
public ActionResult List()
{
var items = machineRecords.Table;
return View(items);
}
}
}
編集2:
エンドルフィンのおかげでここまで来ましたが、実行しようとすると、次のAddDummyData()
エラーが発生します。could not insert: [PowerAll.Voorraad.Models.MachineRecord][SQL: INSERT INTO PowerAll_Voorraad_MachineRecord (MachineNumber, Title, Description1, Description2, Description3, Description4, Description5, Description6, SerialNumber, PriceType, Price, Year) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); select SCOPE_IDENTITY()]
コードをステップスルーすると、すべての値が正しく投稿されます。
これは私のAddDummyData()です:
public void AddDummyData()
{
var GroupRecord = new GroupRecord { GroupName = "Oldtimers" };
groupRecords.Create(GroupRecord);
var MachineRecord = new MachineRecord
{
MachineNumber = 100001,
Title = "Landini L25",
Description1 = "Desc 1",
Description2 = "Desc 2",
Description3 = "Desc 3",
Description4 = "Desc 4",
Description5 = "Desc 5",
Description6 = "Desc 6",
SerialNumber = "100000",
GroupRecord = GroupRecord,
PriceType = 'I',
Price = 7999.99m,
Year = 1954
};
machineRecords.Create(MachineRecord);
}
編集3:
今それは働いています、これは私の働くコードです(これにも苦労している人のために)
Migrations.cs
public class Migrations : DataMigrationImpl
{
public int Create()
{
SchemaBuilder.CreateTable("MachineRecord", table => table
.Column<int>("Id", column => column.PrimaryKey().Identity())
.Column<int>("GroupRecord_Id")
.Column<int>("MachineNumber", column => column.NotNull())
.Column<string>("Title", column => column.NotNull().WithLength(40))
.Column<string>("Description", column => column.WithLength(70))
.Column<char>("PriceType", column => column.NotNull().WithLength(1))
.Column<decimal>("Price", column => column.NotNull())
.Column<int>("Year", column => column.WithLength(4))
);
SchemaBuilder.CreateTable("GroupRecord", table => table
.Column<int>("Id", column => column.PrimaryKey().Identity())
.Column<string>("Name")
);
return 1;
}
}
MachineRecord.cs
public class MachineRecord
{
public virtual int Id { get; set; }
public virtual int MachineNumber { get; set; }
public virtual string Title { get; set; }
public virtual string Description { get; set; }
public virtual GroupRecord GroupRecord { get; set; }
public virtual char PriceType { get; set; }
public virtual decimal Price { get; set; }
public virtual int Year { get; set; }
}
GroupRecord.cs
public class GroupRecord
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}