linq to sql только родитель вставляется в БД - PullRequest
0 голосов
/ 13 апреля 2011

Эй, ребята, у меня проблема, из-за которой в БД вставляется только мой родитель, я что-то упустил?вот мой фрагмент кода

public partial class linqtest : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            MyContext db = new MyContext("Server=(local);Database=Test;User ID=admin;Password=pw");
            Child c = new Child();
            c.name = "joe "+DateTime.Now;
            db.parents.InsertOnSubmit(c);
            db.SubmitChanges();
        }
    }

    public class MyContext : DataContext
    {
        public static DataContext db;
        public MyContext(string connection) : base(connection) { }
        public Table<Parent> parents;
    }

    [Table(Name="parents")]
    [InheritanceMapping(Code = "retarded", Type = typeof(Child), IsDefault=true)]
    public class Parent
    {
        [Column(Name = "id", IsPrimaryKey = true, CanBeNull = false, DbType = "Int NOT NULL IDENTITY", IsDbGenerated = true)] /* I want this to be inherited by subclasses */
        public int id { get; set; }

        [Column(Name = "name", IsDiscriminator = true)] /* I want this to be inherited by subclasses */
        public string name { get; set; }
    }

    public class Child : Parent
    {

    }

1 Ответ

0 голосов
/ 13 апреля 2011

То, что вы описываете, где у вас есть одна таблица для родительского объекта и другая таблица для дочернего объекта, называется «наследование нескольких таблиц» или «таблица для подтипа» ... и, к сожалению, она не поддерживается Linq -в-SQL. См. Вопрос SO Множественное наследование в LINQtoSQL? и мой собственный вопрос о поиске обходных путей на Имитация наследования нескольких таблиц в Linq-to-SQL . Вы также можете Google "наследование таблиц в linq-to-sql", чтобы увидеть, как сделать наследование одной таблицы в Linq-to-SQL, что поддерживается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...