两个实体,其中一个实体单方面关联另一个实体,数据更新和添加。

    public class Products
    {
        public int ID {get;set;}

        public string Name { get; set; }

        public ProductClass productClass { get; set; }
    }
    public class ProductClass
    {
        public int ID {get;set;}
    }
    public class ProductsMap : EntityTypeConfiguration<Products>
    {
        public ProductsMap()
        {
            this.ToTable("Pro_Products");

            this.HasRequired(p => p.productClass)
                .WithMany()
                .Map(p => p.MapKey("PCID"))
                .WillCascadeOnDelete(false);
        }
    }

Product单方面关联ProductClass。

更新代码:

        new public void Modify(Products entity)
        {
            using (var db = base.NewDB())
            {
                var old = db.Products.Single(p => p.ID == entity.ID);
                var oldPreproties = old.GetType().GetProperties();
                var newPreproties = entity.GetType().GetProperties();
                foreach (var olditem in oldPreproties)
                {
                    foreach (var item in newPreproties)
                    {
                        if (olditem.Name == item.Name)
                        {
                            olditem.SetValue(old, item.GetValue(entity));
                            break;
                        }
                    }
                }
                old.productClass = db.ProductClass.Single(p => p.ID == entity.productClass.ID);

                db.Entry(old).State = EntityState.Modified;
                db.SaveChanges();
            }
        }

记录下这个特殊的情况,以做后用

时间: 2024-10-06 16:40:48

两个实体,其中一个实体单方面关联另一个实体,数据更新和添加。的相关文章

《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架,它支持3种不同的技术来创建websites(网站)和Web应用:他们分别是,Web Pages,Web Forms,和MVC.虽然MVC是一种非常流行的,有完整的用于软件开发模式理论的技术,但它在ASP.NET中却是一种新的技术. 目前最新的版本是2012年发布的ASP.NET MVC4.自从2008年发布

WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配

原文:WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 网上的例子都是零散的   翻阅了 很多篇文章后 再根据 自己项目的实际需求  整理出一个完整的 应用例子 汉字首字母全文匹配 提取绑定实体类相应的ID值 XAML <Window x:Class="WpfApp3.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation&quo

ssh 实体关系分析确立(ER图-实体关系图)

比较简单的方式就是根据模仿同类产品,根据同类产品的进行模仿,表单就是一个起码要加的字段,然后根据项目需要额外增加字段. 注意:实体类之间的引用关系还需要考虑性能的影响.如:单向或是双向. 表设计: 设计好后: 写实体类 建立实体类到数据库的关联关系 概述 5.实体关系分析 1.类结构:带箭头是单线关联,不带箭头是双向关联 ---------------------------------------- class User (1)<------(*) class Survey  (1)-----

背水一战 Windows 10 (98) - 关联启动: 使用外部程序打开一个文件, 使用外部程序打开一个 Uri

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 关联启动 使用外部程序打开一个文件 使用外部程序打开一个 Uri 示例1.演示如何使用外部程序打开一个文件AssociationLaunching/LaunchFile.xaml <Page x:Class="Windows10.AssociationLaunching.LaunchFile" xmlns="http://schemas.microsoft.com/winfx/2006/xaml

给出两个单词(start和end)与一个字典,找出从start到end的最短转换序列

问题 给出两个单词(start和end)与一个字典,找出从start到end的最短转换序列.规则如下: 一次只能改变一个字母 中间单词必须在字典里存在 例如: 给出 start = "hit"end = "cog"dict = ["hot","dot","dog","lot","log"] 返回 [ ["hit","hot",&

两张表A和B,各有一个字段,更新时间A.MODIFIED_TM和B.MODIFIED_TM,A表为主表,更新时间不为空,但是B表更新时间可能为空,现在要取A、B两表时间最新的那个,B.MODIFIED

问题描述: 两张表A和B,各有一个字段,更新时间A.MODIFIED_TM和B.MODIFIED_TM,A表为主表,更新时间不为空,但是B表更新时间可能为空,现在要取A.B两表时间最新的那个,B.MODIFIED_TM若为空就取A.MODIFIED_TM,例如: 表A ID    MODIFIED_TM 1     2013/3/10 18:07:12 2     2013/4/10 18:07:12 3     2013/5/10 18:07:12 表B ID    MODIFIED_TM 1

【C语言】在两个数成对出现的数组中找到一个单独的数。

//在两个数成对出现的数组中找到一个单独的数.比如{1,2,3.3,1,4.2},即找出4 #include <stdio.h> int find(int arr[], int len) { int i = 0; int ret = 0; for (i = 0; i < len; i++) { ret = ret^arr[i]; } return ret; } int main() { int arr1[] = { 1, 2, 2, 3, 1, 5, 3 }; int arr2[] =

编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成

编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成.“组合 ”的规则如下: 1). str中的每个字母要么来自于part1,要么来自于part2; 2). part1和part2中字母的顺序与str中字母的顺序相同. 例如: "codewars"由"cdw"和"oears"组合而成: s: c o d e w a r s = codewars part1: c d w = cdw part2

Struts2从一个action转到另一个action的两种方法

在Struts2中,Action处理完用户请求后,将会返回一个字符串对象,这个字符串对象就是一个逻辑视图名.Struts 2通过配置逻辑视图名和物理视图之间的映射关系,一旦系统收到Action返回的某个逻辑视图名,系统就会把相应的物理视图呈现给浏览者. Struts 2的结果类型决定了Action处理结束后,下一步将会调用那种视图资源来呈现处理结果.默认是dispatcher,该结果类型指定使用JSP作为视图资源.但是我们会有这样的要求:要求从一个Action转到另一个Action中去. 从一个