首页 新闻 搜索 专区 学院

.netcore DDD中,如何把值对象存入数据库?

0
悬赏园豆:30 [已解决问题] 解决于 2018-11-09 11:51

.netcore DDD中,如何把值对象存入数据库?
比如我在 Student 聚合根里有一个 Address 的值对象
一直报错
The property 'Student.Address' is of type 'Address' which is not supported by current database provider. Either change the property CLR type or ignore the property using the '[NotMapped]' attribute or by using 'EntityTypeBuilder.Ignore' in 'OnModelCreating'.

老张的哲学的主页 老张的哲学 | 初学一级 | 园豆:2
提问于:2018-11-09 10:26
< >
分享
最佳答案
1

有段时间我学习过entityframework,记得有个“Complex types”的概念。不过我不知道.net core里是否还保留这个概念,请看我当时写的随笔:https://www.cnblogs.com/zzy0471/p/6859727.html ,如果还有这个概念的话,也许可以用

收获园豆:30
会长 | 大侠五级 |园豆:9030 | 2018-11-09 10:35

您好,我看到了您的博文,和我的一样,我没有发现你在哪里配置了Complex types”?

老张的哲学 | 园豆:2 (初学一级) | 2018-11-09 10:42

我的需求和你的一样,但是一直不行,报上边的错

老张的哲学 | 园豆:2 (初学一级) | 2018-11-09 10:48

@老张的哲学: 可能是版本不一样,我这个是6.0,你有没有看官网上的文档,是否有说明呢

会长 | 园豆:9030 (大侠五级) | 2018-11-09 11:05

@老张的哲学: 你是用的code first模式吗?我记得我学的时候,没有配置说明,根据实体自动生成了表结构就可以了

会长 | 园豆:9030 (大侠五级) | 2018-11-09 11:06

@会长:
我用的是 .net core 2.1 下的 EFCore 2.2.0 ,用的Code First 模式,
我也查了资料,好像EF版本的是,但是core版本确实报错
The expression 'c => c.Address.Province' is not a valid property expression. The expression should represent a simple property access: 't => t.MyProperty'.
Parameter name: propertyAccessExpression
不让我用这个方法

老张的哲学 | 园豆:2 (初学一级) | 2018-11-09 11:09

@老张的哲学: 我查到一个教程,说entity framework 并不支持 complex types:https://www.dotnetcurry.com/entityframework/1347/entity-framework-ef-core-tutorial

会长 | 园豆:9030 (大侠五级) | 2018-11-09 11:10

@老张的哲学:你看看这个,efcore有个新概念:owned entity types ,我略看了下,好像是类似的东西:

  • https://docs.microsoft.com/en-us/ef/core/modeling/owned-entities
  • http://anthonygiretti.com/2018/01/11/entity-framework-core-2-owned-types/
  • https://stackoverflow.com/questions/50572158/how-do-i-implement-a-simple-complex-type-in-entity-framework-core-2-c

题主,别忘了结贴啊,我要30个园豆

会长 | 园豆:9030 (大侠五级) | 2018-11-09 11:16

@会长: 万分感谢!可以用,帅老铁

老张的哲学 | 园豆:2 (初学一级) | 2018-11-09 11:51

@老张的哲学: 你是不是用百度搜索的,所以没搜到,我用百度也没搜到,用google搜到了答案

会长 | 园豆:9030 (大侠五级) | 2018-11-09 11:53

@会长: 是百度的,看来以后要谷粉了

老张的哲学 | 园豆:2 (初学一级) | 2018-11-09 11:58

@会长: 给你结帖了,豆子拿走

老张的哲学 | 园豆:2 (初学一级) | 2018-11-09 11:59

@老张的哲学: 多谢

会长 | 园豆:9030 (大侠五级) | 2018-11-09 12:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册