小编Emi*_*len的帖子

如何将类属性(带导航道具)作为实体属性?复杂的类型不会

基本上我有一个像这样的实体:

public class Person {
 public int PersonId { get; set; }
 public string Name { get; set; }
 public Address Hometown { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

还有一个类:

public class Address {
 public City City { get; set; }
 public string Province { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想要完成的是垂直连接两个类并有一个表行:

TB_PERSON:
   PersonId PK
   Name
   City_id FK
   Province
Run Code Online (Sandbox Code Playgroud)

为什么我想要这种方法,在我的实际项目中,我在多个条目上发生了相同类型的数据结构模式,在这种情况下,示例将是地址类.它可能很容易出现在另一个实体中.

难道我几天都找不到怎么做这么难吗?我能得到的是最复杂的类型,但在这种情况下它们不允许导航属性.我希望访问并使我的行数据类型化,面向对象,以为EF会有所作为.任何帮助表示赞赏.

c# asp.net-mvc entity-framework

10
推荐指数
1
解决办法
260
查看次数

泛型类型的隐式转换对于接口类型失败

        private struct Maybe<T>
        {
            private readonly T value;
            private readonly bool hasValue;

            private Maybe(T value)
            {
                this.value = value;
                hasValue = true;
            }

            public static implicit operator Maybe<T>(T value) =>
                value == null ? new Maybe<T>() : new Maybe<T>(value);
        }

        private static Maybe<byte> OK()
        {
            return 5;
        }

        private static Maybe<IEnumerable<byte>> NotOK()
        {
            var e = new[] { 1, 2, 3 }.Select(x => (byte)x);
            Console.WriteLine(e.GetType().Name);
            return e;
        }
Run Code Online (Sandbox Code Playgroud)

小提琴(不要使用):https : //dotnetfiddle.net/NxAw9l

更新小提琴:https : //dotnetfiddle.net/NrARTl

在上面的代码中,某些泛型类型无法进行隐式转换。请参阅Ok()NotOk() …

c# type-inference

4
推荐指数
1
解决办法
187
查看次数