1

わかりましたので、自分のデータベース テーブル「Kingdoms」から生成された Vault.CS という名前のクラスを生成しました。「Kingdoms」は、「Kingdom」、「Army」、「Vault」という 3 つの概念モデルに分けられます。Vault は、これらのフィールドのそれぞれが整数である ItemSlot1 ~ ItemSlot16 列を参照する概念モデルです。

私の質問は、拡張クラスでこれらの 16 フィールドをコレクションとして参照するにはどうすればよいですか? たとえば、アイテムを「ボールト」に追加する場合、スロット 1 ~ 16 で最初の空の (0 または null) スロットを見つけ、特定のアイテムに対応する整数をそのフィールドに追加する必要があります。私は複雑なクラスについていくつか読んでいましたが、この方法で一連のプロパティをソートできることについては何も読んでいませんでした。何か案は?

4

2 に答える 2

1

私はあなたの考えを明確に理解していませんが、次のようなものが必要だと思います:

[MetadataType(typeof(VaultAttribs))]
public partial class Vault
{
    public void Add(int item)
    {
        var v = db.Vaults.FirstOrDefault();
        var ps = v.GetType().GetProperties();
        for (int i = 0; i < ps.Lenght; i++)
            if (ps[i].Equals(null))
            {
                ps[i].SetValue(v, item, null);
                db.SaveChanges();
                return;
            }
    }
}

public class VaultAttribs
{        
    // Vault attribs...
}
于 2013-08-05T08:39:12.300 に答える
0

生成されたクラスは部分的である必要があります。 部分クラスのヘルプ つまり、生成されたクラス部分に触れることなく、追加のプロパティとメソッドを追加できます。

于 2013-08-04T22:44:24.447 に答える