Correct way Entity framework master-detail insert record code for inserting child

Carlo

I'm new to Entity Framework and tying to learn correct way of updating data.

Customer

public partial class Customer
{
    public Customer()
    {
        this.Contacts = new ObservableListSource<Contact>();
    }

    public int CustomerId { get; set; }
    public int CustomerCustomId { get; set; }
    public string CustomerName { get; set; }

    public virtual ObservableListSource<Contact> Contacts { get; set; }
}

Contact

public partial class Contact
{
    public int ContactId { get; set; }
    public string ContactName { get; set; }
    public string ContactMobile { get; set; }
    public int CustomerCustomerId { get; set; }

    public virtual Customer Customer { get; set; }
}

Form1

    private void Form1_Load(object sender, EventArgs e)
    {
        _context = new winproContext();
        var query = _context.Customers;
        this.customerBindingSource.DataSource = query.ToList();
    }


    private void customerBindingNavigatorSaveItem_Click(object sender, EventArgs e)
    {
        try
        {
            this.Validate();
            _context.SaveChanges();
            MessageBox.Show("Data saved");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        } 
    }

    private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
    {
        var customer = new Customer { CustomerName = "test" };
        _context.Customers.Add(customer);
        _context.SaveChanges();
        // How to add contact details ?
        // How to add get value from datagridView column 
    }

How to add contact details ?

How to add get value from datagridView column ?

Is that code ok or can someone suggest better way of doing this.

Where/how to remove insert code from forms into separate class?

Thanks.

potehin143
    var customer = new Customer { CustomerName = "test" };
    _context.Customers.Add(customer);
    var newContact = new Contact();   

    customer.Contacts = new ObservableListSource<Contact>();// it needs becorse your collection is null 


    customer.Contacts.Add(newContact);  //just add new child to collection of parent
    _context.Customers.Add(customer);
    _context.SaveChanges();

the better way is to make collection initialization inside of entity object

public partial class Customer
{
public Customer()
{
    this.Contacts = new ObservableListSource<Contact>();
}

public int CustomerId { get; set; }
public int CustomerCustomId { get; set; }
public string CustomerName { get; set; }
protected ObservableListSource<Contact> _Contacts;
public virtual ObservableListSource<Contact> Contacts 
{ 
  get{            

    if( _Contacts==null) _Contacts= new ObservableListSource<Contact>();            
      return _Contacts;
      } 
    set{
         _Contacts=value;
       } 
     }
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Entity framework, code first. Child objects not populating when called

来自分类Dev

拦截并重写Entity Framework INSERT语句

来自分类Dev

拦截并重写Entity Framework INSERT语句

来自分类Dev

MVVM Master Detail with WPF TreeView

来自分类Dev

kogrid中的Master / Detail功能

来自分类Dev

INSERT语句与Entity Framework Core中的FOREIGN KEY约束冲突

来自分类Dev

INSERT语句与Entity Framework Core中的FOREIGN KEY约束冲突

来自分类Dev

将Insert转换为select到Entity Framework 6

来自分类Dev

提高Master Detail SQL代码性能

来自分类Dev

iPad + Master Detail + TabBar上的UINavigationController损坏

来自分类Dev

打开UISplitViewController进入Master View而不是Detail

来自分类Dev

Master Detail Flow Android动画API

来自分类Dev

iPad + Master Detail + TabBar上的UINavigationController损坏

来自分类Dev

Android Master Detail模板和ActionBar

来自分类Dev

Angular 2 Master/Detail 详细解释

来自分类Dev

种子在Entity Framework Code First方法中不起作用

来自分类Dev

使用Code First的Entity Framework 6单向关系

来自分类Dev

Entity Framework 5 Code First Self-Referencing Relationship

来自分类Dev

Mapping many to many relationship in entity framework code first

来自分类Dev

Entity Framework Code First中的多个自引用属性

来自分类Dev

种子在Entity Framework Code First方法中不起作用

来自分类Dev

Entity Framework Code First HashSet 不生成迁移代码

来自分类Dev

从 Entity Framework 6 Code First MSSQL 迁移到 MySQL

来自分类Dev

来自 Code First Entity Framework 的 IQueryable 两个表

来自分类Dev

将 Master/Detail 的第一次出现设置为 Master 视图,而不是 Detail 视图

来自分类Dev

当 master 和 detail 在 XML 中是单独的数据集时,XML Master/detail 数据选择

来自分类Dev

SET IDENTITY_INSERT TableName ON在Entity Framework Core 2.2上不起作用

来自分类Dev

Sqlite insert overwriting record

来自分类Dev

Entity Framework Adding and Deleting an Entity?

Related 相关文章

  1. 1

    Entity framework, code first. Child objects not populating when called

  2. 2

    拦截并重写Entity Framework INSERT语句

  3. 3

    拦截并重写Entity Framework INSERT语句

  4. 4

    MVVM Master Detail with WPF TreeView

  5. 5

    kogrid中的Master / Detail功能

  6. 6

    INSERT语句与Entity Framework Core中的FOREIGN KEY约束冲突

  7. 7

    INSERT语句与Entity Framework Core中的FOREIGN KEY约束冲突

  8. 8

    将Insert转换为select到Entity Framework 6

  9. 9

    提高Master Detail SQL代码性能

  10. 10

    iPad + Master Detail + TabBar上的UINavigationController损坏

  11. 11

    打开UISplitViewController进入Master View而不是Detail

  12. 12

    Master Detail Flow Android动画API

  13. 13

    iPad + Master Detail + TabBar上的UINavigationController损坏

  14. 14

    Android Master Detail模板和ActionBar

  15. 15

    Angular 2 Master/Detail 详细解释

  16. 16

    种子在Entity Framework Code First方法中不起作用

  17. 17

    使用Code First的Entity Framework 6单向关系

  18. 18

    Entity Framework 5 Code First Self-Referencing Relationship

  19. 19

    Mapping many to many relationship in entity framework code first

  20. 20

    Entity Framework Code First中的多个自引用属性

  21. 21

    种子在Entity Framework Code First方法中不起作用

  22. 22

    Entity Framework Code First HashSet 不生成迁移代码

  23. 23

    从 Entity Framework 6 Code First MSSQL 迁移到 MySQL

  24. 24

    来自 Code First Entity Framework 的 IQueryable 两个表

  25. 25

    将 Master/Detail 的第一次出现设置为 Master 视图,而不是 Detail 视图

  26. 26

    当 master 和 detail 在 XML 中是单独的数据集时,XML Master/detail 数据选择

  27. 27

    SET IDENTITY_INSERT TableName ON在Entity Framework Core 2.2上不起作用

  28. 28

    Sqlite insert overwriting record

  29. 29

    Entity Framework Adding and Deleting an Entity?

热门标签

归档