
21nhVM0tti7iiPolsas
19.03.2017
16:45:36
Ты ба-а-а, как выросла группа.
Мой пздюк :33
Pinned даже нет, т.ч...
Какая книга самая-самая для начала изучения C#?
Не просто основы, а с практическим началом.

Nikolay
19.03.2017
16:47:07

Google

Nikolay
19.03.2017
16:48:29
Даже за бугром полно вакансий C#

Вячеслав
19.03.2017
16:48:48
Кстати насчет дж, есть книга или прочая херь, типо дж за 2ч для тех кто прогал на нормальном языке, но хочет немного стать нежнее

21nhVM0tti7iiPolsas
19.03.2017
16:50:13
Это ведь группа по C#, верно, да?

Nikolay
19.03.2017
16:51:21

21nhVM0tti7iiPolsas
19.03.2017
16:52:12
Подскажет кто другие C# группы?
Я помню группы .Net и подобные.

Андрюшка :D
19.03.2017
16:52:38

Nikolay
19.03.2017
16:52:50

21nhVM0tti7iiPolsas
19.03.2017
16:53:47

Nikolay
19.03.2017
16:55:02
Xamarin группа есть

21nhVM0tti7iiPolsas
19.03.2017
16:58:36

Nikolay
19.03.2017
16:59:07
https://t.me/xamarin_russia
Вот ещё можешь посмотреть: https://t.me/Chats_Developers

Google

Саша
19.03.2017
17:33:01
ауе
на линуксе лучше программировать?

Nikolay
19.03.2017
17:33:41
Конечно, он заряжает твой код силой Торвальдса

Саша
19.03.2017
17:33:59
ну это понятно
а еще почему?

Сергей
19.03.2017
17:34:21
/stat@combot

Combot
19.03.2017
17:34:21
combot.org/chat/-1001066857984

21nhVM0tti7iiPolsas
19.03.2017
17:34:24
На пингвине C# не очень.
Бросай.

Nikolay
19.03.2017
17:34:44
Да вообще разницы нет на чём писать

Роман
19.03.2017
17:34:48

21nhVM0tti7iiPolsas
19.03.2017
17:34:48
KEEP CALM AND USE WINDOWS.

Nikolay
19.03.2017
17:35:18
Тут скорее да, от языка зависит

Саша
19.03.2017
17:35:48

21nhVM0tti7iiPolsas
19.03.2017
17:36:02

Саша
19.03.2017
17:36:29
окай
программировать похуйгде?

Axm
19.03.2017
17:36:58
Да

Роман
19.03.2017
17:37:13

Google

Саша
19.03.2017
17:37:28
спосиба

Ammendorf
19.03.2017
17:38:10
Через А

Саша
19.03.2017
17:39:49
спасиба

Роман
19.03.2017
17:40:05
Через О

Саша
19.03.2017
17:40:41
определитесь сначала

21nhVM0tti7iiPolsas
19.03.2017
17:40:58
С большой буквы и с точкой в конце.

Роман
19.03.2017
17:41:09
И с О на конце

Ilya
19.03.2017
17:51:47
Привет всем, может кто помочь? Из-за чего может возникать данная проблемма? Решения из поиска в гугле не действуют и на stackoverflow молчат?

21nhVM0tti7iiPolsas
19.03.2017
17:53:53
Можно копипасту в '''?
В общем оно не находит.

Ilya
19.03.2017
17:54:53
"The ForeignKeyAttribute on property 'Customer' on type 'Shop.Models.Cart' is not valid. The foreign key name 'CustomerId' was not found on the dependent type 'Shop.Models.Customer'. The Name value should be a comma separated list of foreign key property names."

21nhVM0tti7iiPolsas
19.03.2017
17:56:55

Ilya
19.03.2017
17:57:52
Не понял?

21nhVM0tti7iiPolsas
19.03.2017
17:58:30
` - вот такие кавычки по три с каждой стороны, для блока текста/кода.

Axm
19.03.2017
17:59:13

Михаил
19.03.2017
17:59:21
А можно еще класс Customer посмотреть?


Ilya
19.03.2017
18:00:18
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Shop.Models
{
[Table("OrderCustomerInfo")]
public partial class Customer
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
[Required(ErrorMessage = "Нам важно знать как обращаться к вам")]
[MaxLength(100, ErrorMessage = "Мы сожалеем, но нам сложно обращаться к вам с таким длинным именем")]
public string AllName { get; set; }
[EmailAddress]
public string Email { get; set; }
[Required(ErrorMessage = "Нам необходим ваш номер телефона для связи с вами")]
[RegularExpression(@"^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$")]
public string Phone { get; set; }
[Required(ErrorMessage = "Нам необходимо знать область и город доставки")]
[MaxLength(200, ErrorMessage = "Название области и города слишком длинное, возможно вы ввели полный адресс не в то поле")]
public string City { get; set; }
[Required(ErrorMessage = "Нам необходимо знать адресс доставки")]
[MaxLength(200, ErrorMessage = "Адресс слишком длинный, возможно вы ввели название города и области не в то поле")]
public string Address { get; set; }
[Required]
[MaxLength(30)]
public string DeliveryType { get; set; }
[StringLength(400, ErrorMessage = "Ваши пожелания слишком длинные, мы свяжемся с вами по телефону как только вы оформите заказ, и учтем ваши пожелания")]
public string Additional { get; set; }
[Required]
[DefaultValue(false)]
public bool Processed { get; set; }
[Required]
[DefaultValue(false)]
public bool Complete { get; set; }
[DefaultValue(false)]
public bool Hidden { get; set; }
public DateTime Date { get; set; }
public User User { get; set; }
public int CartID { get; set; }
[Required]
[ForeignKey("CartID")]
public virtual Cart Cart { get; set; }
}
}


21nhVM0tti7iiPolsas
19.03.2017
18:00:30
Вах.

Google

Михаил
19.03.2017
18:01:03
А зачем навигационные поля в обоих классах?

Axm
19.03.2017
18:01:07
Тут Id, там customerid

Михаил
19.03.2017
18:01:15
Должны быть только в одном

Axm
19.03.2017
18:01:51
Или в классе Customer сделай поле CustomerId или в классе Cart переименуй foreign key в ID.

Михаил
19.03.2017
18:03:16
Не. Не так же. Название полей тут не должно влиять. EF тут не понимает, как сущности должны быть связаны. Поле с внешним ключем должно быть только в одной таблице

Axm
19.03.2017
18:06:16

Admin
ERROR: S client not available

Ilya
19.03.2017
18:06:21
Не понимаю, поля Customer Customer{get;set;} в Cart и Cart Cart {get;set;} в Cart должны присутствовать, как их связать
Я брал пример с http://www.entityframeworktutorial.net, public class Student
{
public Student()
{
}
public int StudentID { get; set; }
public string StudentName { get; set; }
//Foreign key for Standard
public int StandardId { get; set; }
public Standard Standard { get; set; }
}
public class Standard
{
public Standard()
{
}
public int StandardId { get; set; }
public string StandardName { get; set; }
public ICollection<Student> Students { get; set; }
}

Михаил
19.03.2017
18:07:08
Я так понимаю, что тут связь 1 к 1? У Юзера должна быть корзина? Тогда надо оставить только у юзера public int CartID { get; set; } а из класса Cart надо убрать CustomerId

Axm
19.03.2017
18:07:09

Михаил
19.03.2017
18:07:58
В EF есть соглашения по наименованию. Если поле содержить ИмяКласса+Id, то оно станет внешним ключем автоматически
А как он определяет поле для ключа тогда? Вангует?

Ilya
19.03.2017
18:08:00
CustomerId же есть в класе Cart

Михаил
19.03.2017
18:08:21
Вот убрать его оттуда надо
Оставить только с в юзере

Axm
19.03.2017
18:08:30

Михаил
19.03.2017
18:08:38

Google

Axm
19.03.2017
18:09:12

Ilya
19.03.2017
18:09:52
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Shop.Models
{
public class Cart
{
public Cart()
{
this.Items = new HashSet<CartItem>();
}
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
[Required]
public ICollection<CartItem> Items { get; set; }
public Customer Customer { get; set; }
}
} Поменял вылетает ошибка Customer_Cart_Source: : Multiplicity is not valid in Role 'Customer_Cart_Source' in relationship 'Customer_Cart'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'.

Михаил
19.03.2017
18:09:52
http://www.entityframeworktutorial.net/code-first/code-first-conventions.aspx
he default convention for primary key is that Code-First would create a primary key for a property if the property name is Id or <class name>Id (NOT case sensitive).

Axm
19.03.2017
18:11:58

Михаил
19.03.2017
18:12:30
By default EF will look for foreign key property with the same name as principal entity primary key name.
Customer_Cart_Source: : Multiplicity is not valid in Role 'Customer_Cart_Source' in relationship 'Customer_Cart'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'. это при миграции ошибка падает?

Igor
19.03.2017
18:15:54

Михаил
19.03.2017
18:17:29
А если попробовать убрать virtual у свойства корзины в классе юзера?

Axm
19.03.2017
18:17:51
Он создаст сразу правильный fk на поле id, хочешь сказать?

Михаил
19.03.2017
18:19:57
Если не указывать руками никакой FK, а обойтись только указанием самих классов, которые нужно связать, то он сам сделает правильный FK, который будет назван как <Class>_Id

Дмитрий
19.03.2017
18:24:38
атрибут ForeignKey в таком случае стоит указывать над пропертёй CustomerId, есичо

Ilya
19.03.2017
18:24:46
"A dependent property in a ReferentialConstraint is mapped to a store-generated column. Column: 'ID'." я снова вернулся к ошибке от которой пришел, что её может вызвать

Дмитрий
19.03.2017
18:25:52
[ForeignKey("Customer")]
public int CustomerId { get; set; }
public virtual Customer Customer { get; set; }
не забывай делать навигационные свойства virtual

Михаил
19.03.2017
18:28:30
public int? CartId { get; set; } можно так сделать, но тогда будет не 1 к 1, а 1 к 0..1

Ilya
19.03.2017
18:31:23
Когда сделал так же, появилась ошибка Customer_Cart_Source: : Multiplicity is not valid in Role 'Customer_Cart_Source' in relationship 'Customer_Cart'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'.
[ForeignKey("Customer")]
public int CustomerId { get; set; }
public virtual Customer Customer { get; set; }
не забывай делать навигационные свойства virtual
Эта группа больше не существует