я занимаюсь разработкой в Asp.Net MVC 4, у меня есть таблица UserProfile со следующими полями:Как сохранить UserName от текущего пользователя в другой таблице?
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string UserType { get; set; } //flag de tipo usuário musico ou ouvinte
}
Мое приложение является простым, только для загрузки музыки в базу данных, каждый пользователь может только загрузить музыку. В музыкальном поле у меня есть эти поля:
public class Musica
{
public int MusicaId { get; set; }
public int GeneroId { get; set; } //GenreID
public int UserId { get; set; } //Needs to take the username from current user logged in app
public string Nome { get; set; }
public string NomeArtista { get; set; }
public Genero genero { get; set; }
public decimal Preco { get; set; }
}
Это моя таблица отношения в SQL:
CREATE TABLE [dbo].[Musicas] (
[MusicaId] INT IDENTITY (1, 1) NOT NULL,
[GeneroId] INT NOT NULL,
[UserId] INT NOT NULL,
[Nome] NVARCHAR (MAX) NOT NULL,
[Preco] MONEY NULL,
[NomeArtista] NVARCHAR(MAX) NOT NULL,
CONSTRAINT [PK_dbo.Musicas] PRIMARY KEY CLUSTERED ([MusicaId] ASC),
CONSTRAINT [FK_Musicas_ToTable] FOREIGN KEY ([UserId]) REFERENCES [UserProfile]([UserId])
Когда пользователь, будет создавать свою музыку на взгляд, i want to take the UserName from User and put on field UserName at Music table
, как я могу сделать это?
Я думаю, что это просто сделать, но я не знаю, как взять UserName от пользователя и сохранить за другим столом, кто-нибудь может мне помочь?
Предполагая, что вы используете MembershipProvider для управления пользователями и аутентификации с помощью форм. Если вы используете объявление, используйте первый пример, затем пользовательский API для поиска информации о них из активного каталога с запросами LDAP. Если вы используете аутентификацию CLAIMS, используйте первый пример, а затем w/e, который вы использовали для предоставления пользователям аутентификации по требованиям. –
Несомненно, я положу это на свой метод создания? В musicController –
Привет @Ryios Я пытаюсь сделать то, что вы со мной разговариваете, но это не работает, это мой метод создания: http://pastebin.com/qtte3avx Я могу взять UserName, но когда db.saveChanges() называется следующей ошибкой: '' System.Data.SqlClient.SqlException: Невозможно вставить значение NULL в столбец «Nome», таблица «aspnet-TestTcc2-20140907134144.dbo.Musicas»; столбец не допускает нулей. INSERT не работает. Заявление было прекращено. «Не могли бы вы мне помочь? –